public void Headers_ConnectionClose() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; Assert.IsNull(headers.ConnectionClose, "#1"); headers.ConnectionClose = false; Assert.IsFalse(headers.ConnectionClose.Value, "#2"); headers.Clear(); headers.ConnectionClose = true; Assert.IsTrue(headers.ConnectionClose.Value, "#3"); headers.Clear(); headers.Connection.Add("Close"); Assert.IsTrue(headers.ConnectionClose.Value, "#4"); }
public void Headers_ExpectContinue() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; Assert.IsNull(headers.ExpectContinue, "#1"); headers.ExpectContinue = false; Assert.IsFalse(headers.ExpectContinue.Value, "#2"); headers.Clear(); headers.ExpectContinue = true; headers.ExpectContinue = true; headers.ExpectContinue = true; headers.ExpectContinue = true; Assert.IsTrue(headers.ExpectContinue.Value, "#3"); Assert.AreEqual(1, headers.GetValues("expect").ToList().Count, "#4"); headers.Clear(); headers.Expect.Add(new NameValueWithParametersHeaderValue("100-conTinuE")); Assert.IsTrue(headers.ExpectContinue.Value, "#5"); }
public void Headers_Response() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; headers.Add("Age", "vv"); Assert.AreEqual("vv", headers.GetValues("Age").First(), "#1"); headers.Clear(); headers.AddWithoutValidation("Age", "vv"); Assert.AreEqual("vv", headers.GetValues("Age").First(), "#2"); Assert.AreEqual("Method: GET, RequestUri: '<null>', Version: 1.1, Content: <null>, Headers:\r\n{\r\nAge: vv\r\n}", message.ToString(), "#3"); }
public void Headers_TransferEncodingChunked() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; Assert.IsNull(headers.TransferEncodingChunked, "#1"); headers.TransferEncodingChunked = false; Assert.IsFalse(headers.TransferEncodingChunked.Value, "#2"); headers.Clear(); headers.TransferEncodingChunked = true; Assert.IsTrue(headers.TransferEncodingChunked.Value, "#3"); Assert.AreEqual(1, headers.TransferEncoding.Count, "#3b"); }
public void Headers_Response() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; headers.Add("Age", "vv"); Assert.AreEqual("vv", headers.GetValues("Age").First(), "#1"); headers.Clear(); headers.TryAddWithoutValidation("Age", "vv"); Assert.AreEqual("vv", headers.GetValues("Age").First(), "#2"); // .NET encloses the "Age: vv" with two whitespaces. var normalized = Regex.Replace(message.ToString(), @"\s", ""); Assert.AreEqual("Method:GET,RequestUri:'<null>',Version:1.1,Content:<null>,Headers:{Age:vv}", normalized, "#3"); }
protected virtual void AddDefaultHeaders(HttpRequestHeaders defaultHeaders) { defaultHeaders.Clear(); defaultHeaders.ExpectContinue = false; defaultHeaders.ConnectionClose = false; defaultHeaders.Add("Connection", "keep-alive"); defaultHeaders.TryAddWithoutValidation("Content-type", "application/json; charset=utf-8"); defaultHeaders.TryAddWithoutValidation("Accept-Charset", "utf-8"); defaultHeaders.TryAddWithoutValidation("Accept", "application/json"); defaultHeaders.TryAddWithoutValidation("Accept-Language", "pt-BR"); if (this.ApiKey != null) { defaultHeaders.TryAddWithoutValidation("Authorization", string.Format("Bearer {0}", this.ApiKey)); } }
protected virtual void ConfigureDefaultRequestHeaders(HttpRequestHeaders headers) { headers.Clear(); headers.ConnectionClose = false; headers.TryAddWithoutValidation("Accept", "application/json"); headers.TryAddWithoutValidation("Content-Type", "application/json"); headers.CacheControl = new CacheControlHeaderValue { NoCache = true }; if (CustomDefaultHttpHeaders != null) { foreach (var httpHeader in CustomDefaultHttpHeaders) { headers.TryAddWithoutValidation(httpHeader.Key, httpHeader.Value); } } }
public void ClearRemovesAllHeaders() { IDictionary<string, StringValues> headers = new HttpRequestHeaders(); headers.Add("host", new[] { "localhost" }); headers.Add("custom", new[] { "value" }); headers.Add("Content-Length", new[] { "0" }); StringValues value; Assert.Equal(3, headers.Count); Assert.True(headers.TryGetValue("host", out value)); Assert.True(headers.TryGetValue("custom", out value)); Assert.True(headers.TryGetValue("Content-Length", out value)); headers.Clear(); Assert.Equal(0, headers.Count); Assert.False(headers.TryGetValue("host", out value)); Assert.False(headers.TryGetValue("custom", out value)); Assert.False(headers.TryGetValue("Content-Length", out value)); }
private HttpRequestHeaders SetHeaders(HttpRequestHeaders headers, Dictionary <string, string> myHeaders) { headers.Clear(); var headersCollection = headers; if (myHeaders != null) { foreach (var item in myHeaders) { if (this._doValidation == HeadersValidation.Yes) { headersCollection.Add(item.Key, item.Value); } else { headersCollection.TryAddWithoutValidation(item.Key, item.Value); } } } return(headersCollection); }
/// <summary> /// Set <see cref="HttpRequestHeaders"/> using the <see cref="ApiHeaders"/>. This initially clears <paramref name="headers"/>. /// </summary> /// <param name="headers">The <see cref="HttpRequestHeaders"/> to set.</param> /// <param name="instanceId">The instance <see cref="EntityId.Id"/> for the request.</param> public void SetRequestHeaders(HttpRequestHeaders headers, long?instanceId = null) { if (headers == null) { throw new ArgumentNullException(nameof(headers)); } if (instanceId.HasValue && InstanceId.HasValue && instanceId != InstanceId) { throw new InvalidOperationException("Specified different instance IDs in constructor and SetRequestHeaders!"); } headers.Clear(); headers.Accept.Add(new MediaTypeWithQualityHeaderValue(MediaTypeNames.Application.Json)); if (!IsTokenAuthentication) { headers.Authorization = new AuthenticationHeaderValue( BasicAuthenticationScheme, Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Username}:{Password}"))); } else { headers.Authorization = new AuthenticationHeaderValue(BearerAuthenticationScheme, Token); if (OAuthProvider.HasValue) { headers.Add(OAuthProviderHeader, OAuthProvider.ToString()); } } headers.UserAgent.Add(new ProductInfoHeaderValue(UserAgent)); headers.Add(ApiVersionHeader, new ProductHeaderValue(AssemblyName.Name, ApiVersion.ToString()).ToString()); instanceId ??= InstanceId; if (instanceId.HasValue) { headers.Add(InstanceIdHeader, instanceId.ToString()); } }
public void Header_BaseImplementation() { HttpRequestMessage message = new HttpRequestMessage(); HttpRequestHeaders headers = message.Headers; headers.Add("a", "a-value"); headers.Add("b", new List <string> { "v1", "v2" }); headers.Add("c", null as string); headers.Add("d", new string[0]); Assert.IsTrue(headers.TryAddWithoutValidation("accept", "audio"), "#0"); Assert.IsFalse(headers.Contains("nn"), "#1a"); Assert.IsTrue(headers.Contains("b"), "#1b"); var values = headers.GetValues("b").ToList(); Assert.AreEqual("v1", values[0], "#2a"); Assert.AreEqual("v2", values[1], "#2b"); Assert.IsFalse(headers.Remove("p"), "#3a"); Assert.IsTrue(headers.Remove("b"), "#3b"); Assert.IsFalse(headers.Contains("b"), "#3b-c"); IEnumerable <string> values2; Assert.IsTrue(headers.TryGetValues("c", out values2)); values = values2.ToList(); Assert.AreEqual("", values[0], "#4a"); int counter = 0; foreach (var i in headers) { ++counter; } Assert.AreEqual(3, counter, "#5"); headers.Clear(); headers.Accept.Add(new MediaTypeWithQualityHeaderValue("audio/x")); Assert.IsTrue(headers.TryAddWithoutValidation("accept", "audio"), "#55"); values = headers.GetValues("accept").ToList(); Assert.AreEqual(2, values.Count, "#6"); Assert.AreEqual("audio/x", values[0], "#6a"); Assert.AreEqual("audio", values[1], "#6b"); Assert.AreEqual(1, headers.Accept.Count, "#6c"); headers.Clear(); Assert.IsTrue(headers.TryAddWithoutValidation("from", new[] { "*****@*****.**", "*****@*****.**" }), "#70"); values = headers.GetValues("from").ToList(); Assert.AreEqual(2, values.Count, "#7"); Assert.AreEqual("*****@*****.**", values[0], "#7a"); Assert.AreEqual("*****@*****.**", values[1], "#7b"); Assert.AreEqual("*****@*****.**", headers.From, "#7c"); headers.Clear(); Assert.IsTrue(headers.TryAddWithoutValidation("Date", "wrong date"), "#8-0"); var value = headers.Date; Assert.IsNull(headers.Date, "#8"); }
public void Build(HttpRequestHeaders headers) { headers.Clear(); _headersAccessors.ForEach(accessor => accessor(headers)); }