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);
 }
Exemple #2
0
        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);
        }
    }
Exemple #13
0
        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);
 }
Exemple #22
0
        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);
 }
Exemple #28
0
 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();
 }
Exemple #33
0
        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);
            }
        }
Exemple #34
0
        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);
 }