Ejemplo n.º 1
0
        public void DownloadFile(HttpRequestMessage request, string filePath)
        {
            BeforeSendRequest?.Invoke(this, request);
            try {
                var webReq = WebRequest.Create(request.RequestUri.OriginalString) as HttpWebRequest;
                webReq.CookieContainer = Cookies;
                webReq.Proxy           = Proxy;
                var c = new WebRequestHeaderCollection(webReq, webReq.Headers);
                var d = GetMergedHeaderDictionary(request);
                c.AddRange(d);

                if (request.Method == HttpMethod.Post && request.Content != null)
                {
                    webReq.Method      = "POST";
                    webReq.ContentType = DefaultContentType;
                    var t = request.Content.ReadAsStreamAsync();
                    t.Wait();
                    using (var reqS = t.Result)
                        using (var webReqS = webReq.GetRequestStream())
                        {
                            reqS.CopyTo(webReqS);
                        }
                }

                using (var resp = webReq.GetResponse())
                    using (var respS = resp.GetResponseStream())
                        using (var fS = new FileStream(filePath, FileMode.Create))
                        {
                            respS.CopyTo(fS);
                        }
            } catch (Exception e) {
                OnError?.Invoke(this, e);
                throw e;
            }
        }
Ejemplo n.º 2
0
        public HttpResponseMessage Send(HttpRequestMessage request)
        {
            BeforeSendRequest?.Invoke(this, request);
            var response = SendProto(request);

            if (!response.IsSuccessStatusCode && ThrowExceptionWhenUnSuccessfulStatusCode)
            {
                var e = new Exception(response.ReasonPhrase);
                OnError?.Invoke(this, e);
                throw e;
            }
            return(response);
        }
Ejemplo n.º 3
0
 public Task <HttpResponseMessage> SendAsync(HttpRequestMessage request)
 {
     BeforeSendRequest?.Invoke(this, request);
     if (ThrowExceptionWhenUnSuccessfulStatusCode)
     {
         return(Task.Run <HttpResponseMessage>(() => {
             var t = SendAsyncProto(request);
             t.Wait();
             var response = t.Result;
             if (!response.IsSuccessStatusCode)
             {
                 var e = new Exception(response.ReasonPhrase);
                 OnError?.Invoke(this, e);
                 throw e;
             }
             return response;
         }));
     }
     return(SendAsyncProto(request));
 }
Ejemplo n.º 4
0
 protected virtual void OnRequestReady(YaWhoisClientEventArgs e)
 {
     BeforeSendRequest?.Invoke(this, e);
     WhenRequestReady?.Invoke(this, e);
 }