Exemple #1
0
        public Outcome <HttpReply> Send(HttpRequestSpec spec)
        {
            try
            {
                var request  = CreateRequest(spec);
                var response = client.SendAsync(request).Result;

                var descriptor = new HttpReplyStatus
                                 (
                    ProtocolCode: HttpResultCodes.Find((int)response.StatusCode),
                    SystemCode: SystemResultCodes.Success
                                 );

                var data         = response.Content.ReadAsStringAsync().Result;
                var notification = response.IsSuccessStatusCode
                                 ? none <IApplicationMessage>()
                                 : some(HttpStatusMessages.ErrorStatus(descriptor, data));
                return(success(
                           new HttpReply(descriptor, data),
                           notification.ValueOrDefault(ApplicationMessage.Empty)
                           ));
            }
            catch (Exception e)
            {
                return(InterpretError(e, spec));
            }
        }
Exemple #2
0
 /// <summary>
 /// Translates a CLR response status code to a <see cref="HttpResultCode"/>
 /// </summary>
 /// <param name="r">The response that specifies the status code</param>
 /// <returns></returns>
 public static HttpResultCode GetHttpStatusCode(this WebResponse r)
 => HttpResultCodes.Find(cast <int>(cast <HttpWebResponse>(r).StatusCode));