public void TestSingleQueryParameter()
        {
            var builder = new HttpWebRequestBuilder()
            {
                BaseUri = UriFactory.Create("http://www.example.com/"),
            };

            builder.AddParameter(RequestParameterType.Query, "testQueryParam", "testValue");

            var wr = builder.GetWebRequest();

            Assert.That(wr.Method, Is.EqualTo("GET"));
            Assert.That(wr.RequestUri.AbsoluteUri,
                        Is.EqualTo("http://www.example.com/?testQueryParam=testValue"));
        }
        public void TestMultipleQueryParameters()
        {
            var builder = new HttpWebRequestBuilder()
            {
                BaseUri = UriFactory.Create("http://www.example.com/"),
            };

            builder.AddParameter(RequestParameterType.Query, "q", "value1");
            builder.AddParameter(RequestParameterType.Query, "q", "value2");

            var wr = builder.GetWebRequest();

            Assert.That(wr.Method, Is.EqualTo("GET"));
            Assert.That(wr.RequestUri.AbsoluteUri, Is.EqualTo("http://www.example.com/?q=value1&q=value2"));
        }
        /// <summary>
        /// Reflectively enumerate the properties of this object looking for all properties containing
        /// the RequestParameterAttribute and copy their values into the HttpWebRequestBuilder.
        /// </summary>
        /// <param name="requestBuilder">The builder used to assemble the web request to initialize this upload.</param>
        private void SetAllPropertyValues(HttpWebRequestBuilder requestBuilder)
        {
            Type myType     = this.GetType();
            var  properties = myType.GetProperties();

            foreach (var property in properties)
            {
                var attribute = property.GetCustomAttribute <Google.Apis.Util.RequestParameterAttribute>();

                if (attribute != null)
                {
                    string name  = attribute.Name ?? property.Name.ToLower();
                    object value = property.GetValue(this, new object[] { });
                    if (value != null)
                    {
                        requestBuilder.AddParameter(attribute.Type, name, value.ToString());
                    }
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Create a request to initialize a request.
        /// </summary>
        /// <returns>
        /// An HttpWebRequest configured to initialize a request.
        /// </returns>
        /// <param name="contentLength">Length of the content to be uploaded (in bytes).</param>
        /// <param name="contentType">Content type of the content to be uploaded.</param>
        private HttpWebRequest CreateInitializeRequest(long contentLength, string contentType)
        {
            HttpWebRequestBuilder builder = new HttpWebRequestBuilder()
            {
                BaseUri            = new Uri(this.baseUri),
                Method             = this.httpMethod,
                Path               = this.path,
                HttpRequestFactory = this.RequestFactory,
            };

            builder.AddParameter(RequestParameterType.Query, "uploadType", "resumable");
            builder.AddParameter(RequestParameterType.Query, "alt", "json");

            SetAllPropertyValues(builder);

            var request = builder.GetWebRequest();

            request.Headers.Add(PayloadContentTypeHeader, contentType);
            request.Headers.Add(PayloadContentLengthHeader, contentLength.ToString());

            if (this.Authenticator != null)
            {
                Authenticator.ApplyAuthenticationToRequest(request);
            }

            string bodyText = this.Serializer.Serialize(this.Body);

            byte[] body = Encoding.UTF8.GetBytes(bodyText);
            request.ContentType   = JsonMimeType;
            request.ContentLength = body.Length;

            var requestBodyStream = request.GetRequestStream();

            requestBodyStream.Write(body, 0, body.Length);
            return(request);
        }
Esempio n. 5
0
        public IHttpWebRequest BuildRequest(ParsedHttpRequest parsed)
        {
            var request = HttpWebRequestBuilder.InitializeWebRequest(parsed);

            return(new HttpWebRequestWrapper(request));
        }