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; } }
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); }
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)); }
protected virtual void OnRequestReady(YaWhoisClientEventArgs e) { BeforeSendRequest?.Invoke(this, e); WhenRequestReady?.Invoke(this, e); }