Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 4
0
        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");
        }
Exemplo n.º 5
0
        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);
                }
            }
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        /// <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());
            }
        }
Exemplo n.º 11
0
        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");
        }
Exemplo n.º 12
0
 public void Build(HttpRequestHeaders headers)
 {
     headers.Clear();
     _headersAccessors.ForEach(accessor => accessor(headers));
 }