protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result) { var task = result as Task <HttpResponseMessage>; if (task.IsFaulted) { throw task.Exception.InnerException; } if (task.IsCanceled || context.IsCancellationRequested) { context.MarkCanceled(); return; } try { var response = task.Result; var requestSuccesful = response.StatusCode == HttpStatusCode.OK; var output = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); HTTPResponseStatus.Set(context, response.StatusCode); HTTPResponseBody.Set(context, output); HTTPResponseHeaders.Set(context, response.Headers); RequestSuccesful.Set(context, requestSuccesful); try { APIResponse deserializedAPIResponse = JsonConvert.DeserializeObject <APIResponse>(output); APIResponse.Set(context, deserializedAPIResponse); } catch (Exception) { } } catch (OperationCanceledException) { context.MarkCanceled(); } finally { if (task.Result != null) { task.Result.Dispose(); } } }
public static string GetStatusMessage(HTTPResponseStatus status) { string result = "Unknown"; switch (status) { case HTTPResponseStatus.OK: result = "OK"; break; case HTTPResponseStatus.NotFound: result = "Not Found"; break; case HTTPResponseStatus.InternalServerError: result = "Internal Server Error"; break; case HTTPResponseStatus.NotImplemented: result = "Not Implemented"; break; } return(result); }