private async Task<HttpResponseMessage> ExecuteRequest(HttpVerbs method, Uri requestUri, HttpContent content = null) { var request = WebRequest.CreateHttp(requestUri); var httpResponseMessage = new HttpResponseMessage(); request.Headers = DefaultRequestHeaders; request.Method = method.ToString(); request.Accept = "*/*"; httpResponseMessage.Request = request; Logger.LogWebRequest(request); if (content != null) Logger.LogVerbose(content.ToString()); try { if (method == HttpVerbs.POST) { request.ContentType = content.ContentType; var requestStreamTask = Task<Stream>.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, null); using (Stream stream = await requestStreamTask.ConfigureAwait(false)) { content.WriteToStream(stream); } } var responseTask = Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null); using (var response = await responseTask.ConfigureAwait(false) as HttpWebResponse) { httpResponseMessage.SetResponseData(response); Logger.LogWebResponse(response); } } catch (WebException we) { var response = (HttpWebResponse)we.Response; if (response != null) httpResponseMessage.SetResponseData(response); Logger.Log(we); } catch (Exception e) { Logger.Log(e); } return httpResponseMessage; }
public Task<HttpResponseMessage> PostAsync(Uri requestUri, HttpContent content) { return ExecuteRequest(HttpVerbs.POST, requestUri, content); }
public Task<HttpResponseMessage> PostAsync(string requestUri, HttpContent content, CancellationToken cancellationToken) { return PostAsync(requestUri, content); }
public Task<HttpResponseMessage> PostAsync(string requestUri, HttpContent content) { return PostAsync(new Uri(requestUri), content); }
public void Add(HttpContent content) { _contentList.Add(content); }