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()); } } } }
/// <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); }
public IHttpWebRequest BuildRequest(ParsedHttpRequest parsed) { var request = HttpWebRequestBuilder.InitializeWebRequest(parsed); return(new HttpWebRequestWrapper(request)); }