Browse Source

Handle request sender exceptions.

pull/98/head
Sebastian Stehle 8 years ago
parent
commit
221dfc3ec2
  1. 10
      src/Squidex.Domain.Apps.Read/Webhooks/WebhookSender.cs
  2. 22
      src/Squidex.Infrastructure/Http/DumpFormatter.cs

10
src/Squidex.Domain.Apps.Read/Webhooks/WebhookSender.cs

@ -26,6 +26,8 @@ namespace Squidex.Domain.Apps.Read.Webhooks
HttpRequestMessage request = BuildRequest(job);
HttpResponseMessage response = null;
var responseString = string.Empty;
var isTimeout = false;
var watch = Stopwatch.StartNew();
@ -45,19 +47,21 @@ namespace Squidex.Domain.Apps.Read.Webhooks
{
isTimeout = true;
}
catch (Exception ex)
{
responseString = ex.Message;
}
finally
{
watch.Stop();
}
var responseString = string.Empty;
if (response != null)
{
responseString = await response.Content.ReadAsStringAsync();
}
var dump = DumpFormatter.BuildDump(request, response, job.RequestBody, responseString, watch.Elapsed);
var dump = DumpFormatter.BuildDump(request, response, job.RequestBody, responseString, watch.Elapsed, isTimeout);
var result = WebhookResult.Failed;

22
src/Squidex.Infrastructure/Http/DumpFormatter.cs

@ -18,7 +18,7 @@ namespace Squidex.Infrastructure.Http
{
public static class DumpFormatter
{
public static string BuildDump(HttpRequestMessage request, HttpResponseMessage response, string requestBody, string responseBody, TimeSpan elapsed)
public static string BuildDump(HttpRequestMessage request, HttpResponseMessage response, string requestBody, string responseBody, TimeSpan elapsed, bool isTimeout)
{
var writer = new StringBuilder();
@ -29,7 +29,7 @@ namespace Squidex.Infrastructure.Http
writer.AppendLine();
writer.AppendLine("Response:");
writer.AppendResponse(response, responseBody, elapsed);
writer.AppendResponse(response, responseBody, elapsed, isTimeout);
return writer.ToString();
}
@ -50,7 +50,7 @@ namespace Squidex.Infrastructure.Http
}
}
private static void AppendResponse(this StringBuilder writer, HttpResponseMessage response, string responseBody, TimeSpan elapsed)
private static void AppendResponse(this StringBuilder writer, HttpResponseMessage response, string responseBody, TimeSpan elapsed, bool isTimeout)
{
if (response != null)
{
@ -61,17 +61,21 @@ namespace Squidex.Infrastructure.Http
writer.AppendHeaders(response.Headers);
writer.AppendHeaders(response.Content?.Headers);
}
if (!string.IsNullOrWhiteSpace(responseBody))
{
writer.AppendLine();
writer.AppendLine(responseBody);
}
if (!string.IsNullOrWhiteSpace(responseBody))
{
writer.AppendLine();
writer.AppendLine(responseBody);
}
if (response != null)
{
writer.AppendLine();
writer.AppendLine($"Elapsed: {elapsed}");
}
else
if (isTimeout)
{
writer.AppendLine($"Timeout after {elapsed}");
}

Loading…
Cancel
Save