public DataPackets.HttpResponseMessage Send(string method, Uri uri, byte[] postData, string contentType) { var content = HttpContent.Create(postData, contentType); var request = new HttpRequestMessage(method, uri, content); var response = _httpClient.Send(request); return ToNativeResponse(response); }
public SyndicationItem AddMediaResource(Uri mediaCollectionUri, string contentType, string description, HttpContent mediaContent) { if (mediaCollectionUri == null) { throw new ArgumentNullException("mediaCollectionUri"); } if (mediaContent == null) { throw new ArgumentNullException("mediaContent"); } HttpRequestMessage request = new HttpRequestMessage() { Content = mediaContent, Method = "POST", Uri = mediaCollectionUri }; if (!string.IsNullOrEmpty(description)) { request.Headers["Slug"] = description; } if (!string.IsNullOrEmpty(contentType)) { request.Headers.ContentType = contentType; } return this.Send(request).EnsureStatusIs(HttpStatusCode.Created).Content.ReadAsDataContract<Atom10ItemFormatter>().Item; }
public DataPackets.HttpResponseMessage Send(string method, Uri uri, byte[] postData, string contentType) { var content = HttpContent.Create(postData, contentType); var request = new HttpRequestMessage(method, uri, content); var response = _httpClient.Send(request); return(ToNativeResponse(response)); }
public DataPackets.HttpResponseMessage Send(string method, Uri uri, DataPackets.HttpContent postData) { System.Diagnostics.Debug.WriteLine("Request: " + uri.ToString() + " ("+method+")"); var httpRequestMessage = new HttpRequestMessage(method, uri, HttpContent.Create(postData.Content, postData.ContentType)) {Headers = {ContentType = postData.ContentType}}; var response = _httpClient.Send(httpRequestMessage); return ToNativeResponse(response); }
public static void AddIfCancelManagerPresent(HttpRequestMessage request, IHttpCancel action) { var manager = request.GetPropertyOrDefault<CancelManager>(); if (manager != null) { manager.Add(action); } }
protected override void ProcessRequestAndTryGetResponse(HttpRequestMessage request, out HttpResponseMessage response, out object state) { response = _httpResponseMessage; response.Request = request; response.Method = request.Method; state = _state; }
public static void EnableCancel(HttpRequestMessage request) { var manager = request.GetPropertyOrDefault<CancelManager>(); if (manager == null) { manager = new CancelManager(); request.Properties.Add(manager); } }
public void SendAsync(string method, Uri uri, byte[] postData, string contentType, Action <DataPackets.HttpResponseMessage> httpClientCallback) { var content = HttpContent.Create(postData, contentType); var request = new HttpRequestMessage(method, uri, content); var rawRequestData = new AsyncRequest { RawPostData = postData, RawPostDataContentType = contentType, HttpClientCallback = httpClientCallback }; _httpClient.BeginSend(request, SendAsyncEnd, rawRequestData); }
public DataPackets.HttpResponseMessage Send(string method, Uri uri, DataPackets.HttpContent postData) { System.Diagnostics.Debug.WriteLine("Request: " + uri.ToString() + " (" + method + ")"); var httpRequestMessage = new HttpRequestMessage(method, uri, HttpContent.Create(postData.Content, postData.ContentType)) { Headers = { ContentType = postData.ContentType } }; var response = _httpClient.Send(httpRequestMessage); return(ToNativeResponse(response)); }
public override void ProcessRequest(HttpRequestMessage pRequest) { pRequest.Headers.UserAgent.Add(ProductOrComment.Parse(Constants.CLIENT_USER_AGENT)); // Extract private password and remove from the supplied URI var oUserInfo = pRequest.Uri.UserInfo; //var oEncodedPassword = ASCIIEncoding.ASCII.GetBytes(oUserInfo pRequest.Headers.Authorization = Credential.CreateBasic(String.Empty, pRequest.Uri.UserInfo.Split(':')[1]); var oCleanedUri = pRequest.Uri.ToString().Replace(oUserInfo, String.Empty).Replace("@", String.Empty); pRequest.Uri = new Uri(oCleanedUri); }
public void SendAsync(string method, Uri uri, DataPackets.HttpContent postData, Action <DataPackets.HttpResponseMessage> httpClientCallback) { var httpRequestMessage = new HttpRequestMessage(method, uri, HttpContent.Create(postData.Content, postData.ContentType)) { Headers = { ContentType = postData.ContentType } }; var rawRequestData = new AsyncRequest { PostData = postData, HttpClientCallback = httpClientCallback }; _httpClient.BeginSend(httpRequestMessage, SendAsyncEnd, rawRequestData); }
public static HttpRequestMessage WithAcceptHeader(this HttpRequestMessage request, DataPackets.HttpRequestMessage httpRequestMessage) { if (httpRequestMessage != null && !string.IsNullOrEmpty(httpRequestMessage.AcceptContentType)) { request.Headers.Accept = new HeaderValues <StringWithOptionalQuality> { httpRequestMessage.AcceptContentType } } ; return(request); } }
static void ListAllContacts() { using (HttpClient client = new HttpClient("http://localhost:9000/api/contacts/")) { //Get Console.WriteLine("Get-Method Test..."); using (var request = new HttpRequestMessage("GET", "Get/1/name")) { request.Headers.Accept.Add("application/json"); using (var response = client.Send(request)) { var status = response.StatusCode; Console.WriteLine("Status Code: {0}", status); var result = response.Content.ReadAsString(); Console.WriteLine("Content: {0}", result); } } //Post Console.WriteLine("Post-Method Test..."); HttpContent content = HttpContentExtensions .CreateJsonDataContract(new List<Contact> { new Contact{Name = "王春雷"}, new Contact{ContactId = 1,Name = "老张"} }); content.LoadIntoBuffer(); using (var response = client.Put("Filter/1/王春雷", content)) { response.EnsureStatusIsSuccessful(); response.Content.LoadIntoBuffer(); var result = response.Content.ReadAsJsonDataContract<List<Contact>>(); //var serializer = new JavaScriptSerializer(); //var con=serializer.Deserialize<List<Contact>>(result); result.ForEach(r => Console.WriteLine(r.ToString())); } } Console.ReadKey(); }
public void GetProductsWithQueryStringRelative() { var serializer = new XmlSerializer(typeof(Crawler.Model.LinkShare.result)); HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://feed.linksynergy.com"); HttpQueryString query = new HttpQueryString(); query.Add("token", "5bfb339580a02308573204c2ac1bb921ecba09ba542a19d271c2d7e9c27a509f"); query.Add("keyword", "DVD Player"); query.Add("Page", "1"); query.Add("MaxResults", "100"); var uri = HttpQueryString.MakeQueryString(new Uri("/productsearch?", UriKind.Relative), query); var req = new HttpRequestMessage("GET", uri); using (var response = client.Send(req)) { //string results = response.Content.ReadAsString(); var extended = (object)serializer.Deserialize(response.Content.ReadAsStream()); } }
public void GetProductsWithQueryStringRelative() { var serializer = new XmlSerializer(typeof(Crawler.Model.CJ.cjapi)); HttpClient client = new HttpClient(); client.BaseAddress = new Uri("https://product-search.api.cj.com"); HttpQueryString query = new HttpQueryString(); query.Add("website-id", "3100204"); query.Add("keywords", "DVD"); query.Add("page-number", "1"); query.Add("records-per-page", "1000"); var uri = HttpQueryString.MakeQueryString(new Uri("/v2/product-search?", UriKind.Relative), query); var req = new HttpRequestMessage("GET", uri); req.Headers.Add("authorization", "00b171e48c4bc1e70836b252e1c4c40a893f19db0457be8447b1acdbdc0e7e769e1b804c1af54f883326d6147d1365f4b5f031a61740cf0c63a9f4b3d174cebbbf/420a385c3aa9bcd962b9f57ccf2583225758c11999aa6f42db8e90f9126fe0a7110790cd2ccd66a4f1861e89bd33fcfa6f528b494fa183f5d380ca289d18c309"); using (var response = client.Send(req)) { //string results = response.Content.ReadAsString(); var extended = (object)serializer.Deserialize(response.Content.ReadAsStream()); } }
public void SendAsync(HttpRequestMessage request) { PrepareRequest(ref request); SendAsyncCore(request, null); }
public IAsyncResult BeginSend(HttpRequestMessage request, AsyncCallback callback, object state) { throw new NotImplementedException(); }
public HttpResponseMessage Send(HttpRequestMessage request) { throw new NotImplementedException(); }
public void SendAsync(HttpRequestMessage request) { throw new NotImplementedException(); }
public void SendAsync(HttpRequestMessage request, object userState) { throw new NotImplementedException(); }
public static string CalculateEffectiveContentType(HttpRequestMessage request) { var header = request.Headers.ContentType; var c = request.Content; return CalculateEffectiveContentType(header, c); }
void TimerElapsed(object sender, ElapsedEventArgs e) { if (!this.isBusy) { return; } if (!this.IgnoreExpiresHeader) { // Since Expires is a static guess by the server, use Expires only when the server did // not send back any Etag or LastModifiedTime, which makes conditional GET impossible if (this.etag == null && this.lastModifiedTime == null && this.expires != null && (DateTime.UtcNow < this.expires.Value.ToUniversalTime())) { return; } } this.expires = null; HttpRequestMessage request = new HttpRequestMessage("GET", this.uri); if (this.etag != null) { var ifNoneMatch = new HeaderValues<EntityTag>(); ifNoneMatch.Add(this.etag); request.Headers.IfNoneMatch = ifNoneMatch; } request.Headers.IfModifiedSince = this.lastModifiedTime; bool stopTimer = false; try { HttpResponseMessage response = null; try { response = this.HttpClient.Send(request); } catch (Exception ex) { if (!this.IgnoreSendErrors) { stopTimer = InvokeHandler(ex); } if (response != null) { response.Dispose(); } return; } using (response) { switch (response.StatusCode) { case HttpStatusCode.NotModified: // the resource has not been modified response.Dispose(); break; case HttpStatusCode.OK: // the resource has been modified. Fire the event, along with the response message this.etag = response.Headers.ETag; this.expires = response.Headers.Expires; this.lastModifiedTime = response.Headers.LastModified; try { stopTimer = InvokeHandler(response); } finally { response.Dispose(); } break; default: // this is an unexpected error. Fire the event, if errors are not to be suppressed try { if (!this.IgnoreNonOKStatusCodes) { stopTimer = InvokeHandler(response); } } finally { response.Dispose(); } break; } } } finally { if (stopTimer) { StopPolling(); } } }
protected internal abstract IAsyncResult BeginProcessRequestAndTryGetResponse(HttpRequestMessage request, AsyncCallback callback, object state);
public void CachingMovies() { List<Movie> movieList; DateTime lastModifiedJson; using (HttpRequestMessage request = new HttpRequestMessage("GET", "CachingHome")) { request.Headers.Accept.Add(new StringWithOptionalQuality("application/json")); request.Headers.CacheControl = new CacheControl { NoCache = true, MustRevalidate = true }; using (HttpResponseMessage response = client.Send(request)) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); movieList = response.Content.ReadAsJsonDataContract<List<Movie>>(); Assert.AreEqual("*", response.Headers.Vary.First()); lastModifiedJson = response.Headers.LastModified.Value; } } Thread.Sleep(TimeSpan.FromSeconds(1.1)); DateTime lastModifiedXml; using (HttpRequestMessage request = new HttpRequestMessage("GET", "CachingHome")) { request.Headers.Accept.Add(new StringWithOptionalQuality("application/xml")); request.Headers.CacheControl = new CacheControl { NoCache = true, MustRevalidate = true }; using (HttpResponseMessage response = client.Send(request)) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); movieList = response.Content.ReadAsDataContract<List<Movie>>(); Assert.AreEqual("*", response.Headers.Vary.First()); lastModifiedXml = response.Headers.LastModified.Value; } } Thread.Sleep(TimeSpan.FromSeconds(1.1)); using (HttpResponseMessage response = client.Get("CachingHome", "application/json")) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); movieList = response.Content.ReadAsJsonDataContract<List<Movie>>(); Assert.AreEqual("*", response.Headers.Vary.First()); Assert.AreEqual(lastModifiedJson, response.Headers.LastModified.Value); } using (HttpResponseMessage response = client.Get("CachingHome", "application/xml")) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); movieList = response.Content.ReadAsDataContract<List<Movie>>(); Assert.AreEqual("*", response.Headers.Vary.First()); Assert.AreEqual(lastModifiedXml, response.Headers.LastModified.Value); } using (HttpRequestMessage request = new HttpRequestMessage("GET", "CachingHome")) { request.Headers.Accept.Add(new StringWithOptionalQuality("application/json")); request.Headers.IfModifiedSince = lastModifiedJson; using (HttpResponseMessage response = client.Send(request)) { Assert.AreEqual(HttpStatusCode.NotModified, response.StatusCode); } } using (HttpRequestMessage request = new HttpRequestMessage("GET", "CachingHome")) { request.Headers.Accept.Add(new StringWithOptionalQuality("application/xml")); request.Headers.IfModifiedSince = lastModifiedXml; using (HttpResponseMessage response = client.Send(request)) { Assert.AreEqual(HttpStatusCode.NotModified, response.StatusCode); } } }
public HttpStageProcessingException(string message, Exception inner, HttpStage stage, HttpRequestMessage request, HttpResponseMessage response) : base(message, inner, request, response) { this.Stage = stage; }
public HttpResponseMessage Send(HttpRequestMessage request) { PrepareRequest(ref request); var async = new HttpStageProcessingAsyncState(GetPipeline(), request) { ForceSynchronous = true }; var result = new HttpStageProcessingAsyncResult(async, null, null); var xyz = HttpStageProcessingAsyncResult.End(result, true); if (!result.CompletedSynchronously) { throw new InvalidOperationException("didn't complete synchronously: " + result + " " + xyz.Response); } return xyz.Response; }
public override void ProcessRequest(HttpRequestMessage request) { Console.WriteLine("ProcessRequest called: {0} {1}", request.Method, request.Uri); }
protected internal abstract void ProcessRequestAndTryGetResponse(HttpRequestMessage request, out HttpResponseMessage response, out object state);
private void BuildRequest() { HttpQueryString query = new HttpQueryString(); query.Add(Model.CJ.QueryConstants.WebsiteID, ConfigurationManager.AppSettings["cjSiteID"]); query.Add(Model.CJ.QueryConstants.PageNumber, "1"); query.Add(Model.CJ.QueryConstants.RecordsPerPage, "1000"); var uri = HttpQueryString.MakeQueryString(new Uri(METHOD, UriKind.Relative), query); request = new HttpRequestMessage("GET", uri); request.Headers.Add(Model.CJ.QueryConstants.Authorization, ConfigurationManager.AppSettings["cjDeveloperKey"]); }
void SendAsyncCore(HttpRequestMessage request, object userState) { if (userState != null) { CancelManager.EnableCancel(request); lock (pendingAsync) { HttpStageProcessingAsyncResult pend; if (pendingAsync.TryGetValue(userState, out pend)) { if (pend == null) { throw new ArgumentException("userState is not unique", "userState"); } else { throw new ArgumentException("userState is already being used for " + pend.HttpAsyncState.request, "userState"); } } pendingAsync.Add(userState, null); } } var operation = AsyncOperationManager.CreateOperation(userState); var state = new SendAsyncState(this, operation); var result = this.BeginSendCore(request, SendCompletedCallback, state); if (userState != null && !result.IsCompleted) { lock (pendingAsync) { Debug.Assert(pendingAsync[userState] == null); pendingAsync[userState] = result; } } }
public HttpProcessingException(string message, Exception inner, HttpRequestMessage request, HttpResponseMessage response) : this(message, inner) { this.request = request; this.response = response; }
protected override IAsyncResult BeginProcessRequestAndTryGetResponse(HttpRequestMessage request, AsyncCallback callback, object state) { throw new NotImplementedException(); }
protected override void ExecuteTask() { HttpClient client = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(); if (!string.IsNullOrEmpty(UserName) && !string.IsNullOrEmpty(Password)) { client.DefaultHeaders.Authorization = Credential.CreateBasic(UserName, Password); } if (!string.IsNullOrEmpty(Method)) { request.Method = Method; } request.Uri = new Uri(Url); if (!string.IsNullOrEmpty(ContentType)) { request.Headers.ContentType = ContentType; } if (!request.Method.Equals("GET", StringComparison.OrdinalIgnoreCase)) { request.Content = (string.IsNullOrEmpty(Content)) ? HttpContent.CreateEmpty() : HttpContent.Create(Content); request.Headers.ContentLength = request.Content.GetLength(); } if (ConnectionTimeout != 0) { client.TransportSettings.ConnectionTimeout = TimeSpan.FromSeconds(ConnectionTimeout); } Project.Log(Level.Info, "Executing HTTP request."); Project.Log(Level.Info, "Url: {0}", request.Uri); Project.Log(Level.Info, "Method: {0}", request.Method); Project.Log(Level.Info, "Content Type: {0}", request.Headers.ContentType); Project.Log(Level.Info, "Connection Timeout: {0}", client.TransportSettings.ConnectionTimeout); try { HttpResponseMessage response = client.Send(request); if (FailOnError) { response.EnsureStatusIsSuccessful(); } if (!string.IsNullOrEmpty(StatusCodeProperty)) { Project.Properties[StatusCodeProperty] = response.StatusCode.ToString(); } if (successCodes.Contains(response.StatusCode) && !string.IsNullOrEmpty(ResponseProperty)) { Project.Properties[ResponseProperty] = response.Content.ReadAsString(); } Project.Log(Level.Info, "Received HTTP response."); Project.Log(Level.Info, "Status Code: {0}", response.StatusCode); Project.Log(Level.Info, "Content Type: {0}", response.Headers.ContentType); } catch (ArgumentOutOfRangeException ex) { string message = string.Format("The HTTP '{0}' request to '{1}' failed:{2}{3}", Method, Url, Environment.NewLine, ex.Message); throw new BuildException(message, ex); } }
public void CrudMoviesFormBrowser() { string director = "Reiner"; string title = "This is Spinal Tap"; DateTime dateReleased = new DateTime(1984, 4, 2); List<Movie> originalMovieList; List<Movie> updatedMovieList; using (HttpResponseMessage response = client.Get("Home", "application/xml")) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); originalMovieList = response.Content.ReadAsDataContract<List<Movie>>(); } using (HttpRequestMessage request = new HttpRequestMessage("POST", new Uri("Home/create", UriKind.RelativeOrAbsolute), HttpContent.Create(new HttpUrlEncodedForm() { { "Director", director }, { "Title", title }, { "DateReleased", dateReleased.ToString() } }))) { // query string is only available to browsers, pretend we're a browser request.Headers.UserAgent.Add(TestHttpClient.Mozilla40); using (HttpResponseMessage response = client.Send(request)) { Assert.AreEqual(HttpStatusCode.Found, response.StatusCode); } } using (HttpResponseMessage response = client.Get("Home", "application/xml")) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); updatedMovieList = response.Content.ReadAsDataContract<List<Movie>>(); } Movie insertedMovie = updatedMovieList.Except(originalMovieList, moviesComparer).SingleOrDefault(); Assert.IsNotNull(insertedMovie); Assert.AreEqual(director, insertedMovie.Director); Assert.AreEqual(title, insertedMovie.Title); Assert.AreEqual(dateReleased, insertedMovie.DateReleased); using (HttpResponseMessage response = client.Delete("Home/delete/" + insertedMovie.Id.ToString())) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); } }
public void SendAsync(HttpRequestMessage request, object userState) { PrepareRequest(ref request); SendAsyncCore(request, userState); }