Browse Source

HttpClient fixes.

pull/575/head
Sebastian 5 years ago
parent
commit
5593733a36
  1. 4
      backend/extensions/Squidex.Extensions/Actions/Fastly/FastlyActionHandler.cs
  2. 7
      backend/extensions/Squidex.Extensions/Actions/Webhook/WebhookActionHandler.cs
  3. 9
      backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/HttpJintExtension.cs
  4. 6
      backend/src/Squidex.Domain.Apps.Entities/Backup/TempFolderBackupArchiveLocation.cs
  5. 6
      backend/src/Squidex.Infrastructure/Translations/DeepLTranslator.cs
  6. 5
      backend/src/Squidex/Areas/Api/Controllers/Users/UsersController.cs

4
backend/extensions/Squidex.Extensions/Actions/Fastly/FastlyActionHandler.cs

@ -50,14 +50,16 @@ namespace Squidex.Extensions.Actions.Fastly
httpClient.Timeout = TimeSpan.FromSeconds(2); httpClient.Timeout = TimeSpan.FromSeconds(2);
var requestUrl = $"https://api.fastly.com/service/{job.FastlyServiceID}/purge/{job.Key}"; var requestUrl = $"https://api.fastly.com/service/{job.FastlyServiceID}/purge/{job.Key}";
var request = new HttpRequestMessage(HttpMethod.Post, requestUrl);
using (var request = new HttpRequestMessage(HttpMethod.Post, requestUrl))
{
request.Headers.Add("Fastly-Key", job.FastlyApiKey); request.Headers.Add("Fastly-Key", job.FastlyApiKey);
return await httpClient.OneWayRequestAsync(request, ct: ct); return await httpClient.OneWayRequestAsync(request, ct: ct);
} }
} }
} }
}
public sealed class FastlyJob public sealed class FastlyJob
{ {

7
backend/extensions/Squidex.Extensions/Actions/Webhook/WebhookActionHandler.cs

@ -57,11 +57,11 @@ namespace Squidex.Extensions.Actions.Webhook
{ {
using (var httpClient = httpClientFactory.CreateClient()) using (var httpClient = httpClientFactory.CreateClient())
{ {
var request = new HttpRequestMessage(HttpMethod.Post, job.RequestUrl) using (var request = new HttpRequestMessage(HttpMethod.Post, job.RequestUrl)
{ {
Content = new StringContent(job.RequestBody, Encoding.UTF8, "application/json") Content = new StringContent(job.RequestBody, Encoding.UTF8, "application/json")
}; })
{
request.Headers.Add("X-Signature", job.RequestSignature); request.Headers.Add("X-Signature", job.RequestSignature);
request.Headers.Add("X-Application", "Squidex Webhook"); request.Headers.Add("X-Application", "Squidex Webhook");
request.Headers.Add("User-Agent", "Squidex Webhook"); request.Headers.Add("User-Agent", "Squidex Webhook");
@ -70,6 +70,7 @@ namespace Squidex.Extensions.Actions.Webhook
} }
} }
} }
}
public sealed class WebhookJob public sealed class WebhookJob
{ {

9
backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/HttpJintExtension.cs

@ -52,9 +52,10 @@ namespace Squidex.Domain.Apps.Core.Scripting.Extensions
{ {
using (var httpClient = httpClientFactory.CreateClient()) using (var httpClient = httpClientFactory.CreateClient())
{ {
var request = CreateRequest(url, headers); using (var request = CreateRequest(url, headers))
var response = await httpClient.SendAsync(request, context.CancellationToken); {
using (var response = await httpClient.SendAsync(request, context.CancellationToken))
{
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
var responseObject = await ParseResponse(context, response); var responseObject = await ParseResponse(context, response);
@ -64,6 +65,8 @@ namespace Squidex.Domain.Apps.Core.Scripting.Extensions
callback(responseObject); callback(responseObject);
} }
} }
}
}
catch (Exception ex) catch (Exception ex)
{ {
context.Fail(ex); context.Fail(ex);

6
backend/src/Squidex.Domain.Apps.Entities/Backup/TempFolderBackupArchiveLocation.cs

@ -54,7 +54,7 @@ namespace Squidex.Domain.Apps.Entities.Backup
{ {
client.Timeout = TimeSpan.FromHours(1); client.Timeout = TimeSpan.FromHours(1);
response = await client.GetAsync(url); response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
using (var sourceStream = await response.Content.ReadAsStreamAsync()) using (var sourceStream = await response.Content.ReadAsStreamAsync())
@ -67,6 +67,10 @@ namespace Squidex.Domain.Apps.Entities.Backup
{ {
throw new BackupRestoreException($"Cannot download the archive. Got status code: {response?.StatusCode}.", ex); throw new BackupRestoreException($"Cannot download the archive. Got status code: {response?.StatusCode}.", ex);
} }
finally
{
response?.Dispose();
}
} }
try try

6
backend/src/Squidex.Infrastructure/Translations/DeepLTranslator.cs

@ -70,7 +70,10 @@ namespace Squidex.Infrastructure.Translations
parameters["source_lang"] = GetLanguageCode(sourceLanguage); parameters["source_lang"] = GetLanguageCode(sourceLanguage);
} }
var response = await httpClient.PostAsync(Url, new FormUrlEncodedContent(parameters), ct); var body = new FormUrlEncodedContent(parameters);
using (var response = await httpClient.PostAsync(Url, body, ct))
{
var responseString = await response.Content.ReadAsStringAsync(); var responseString = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
@ -90,6 +93,7 @@ namespace Squidex.Infrastructure.Translations
return new Translation(TranslationResult.Failed, resultText: responseString); return new Translation(TranslationResult.Failed, resultText: responseString);
} }
}
private static string GetLanguageCode(Language language) private static string GetLanguageCode(Language language)
{ {

5
backend/src/Squidex/Areas/Api/Controllers/Users/UsersController.cs

@ -189,8 +189,8 @@ namespace Squidex.Areas.Api.Controllers.Users
if (!string.IsNullOrWhiteSpace(url)) if (!string.IsNullOrWhiteSpace(url))
{ {
var response = await client.GetAsync(url); using (var response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead))
{
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
var contentType = response.Content.Headers.ContentType.ToString(); var contentType = response.Content.Headers.ContentType.ToString();
@ -210,6 +210,7 @@ namespace Squidex.Areas.Api.Controllers.Users
} }
} }
} }
}
catch (Exception ex) catch (Exception ex)
{ {
log.LogError(ex, w => w log.LogError(ex, w => w

Loading…
Cancel
Save