каковы возможные причины того, что HttpResponseHeaders .contains () выдает исключения в C # с HttpClient?

Речь идет об использовании HttpClient в C #. Когда я получаю ответ от сервера, я сталкиваюсь с проблемой ниже. Я использую hc.DefaultRequestHeaders.TryAddWithoutValidation (name, headMap [name]) »

            HttpClient hc = new HttpClient();
            hc.Timeout = new TimeSpan(1000000000);
            HttpContent content = new StringContent(body, Encoding.UTF8);

            if (headMap != null && headMap.Count > 0)
            {
                foreach (string name in headMap.Keys)
                {
                    hc.DefaultRequestHeaders.TryAddWithoutValidation(name, headMap[name]);
                }
            }

            HttpResponseMessage responseM = hc.PostAsync(new Uri(url), content).Result;
            endTime = DateTime.Now.ToString("dd/MMM/yyyy:HH:mm:ss zz", new CultureInfo("en-US"));

            HttpResponseHeaders headers = responseM.Headers;
            IEnumerable<string> values;
            if (headers.Contains("Content-Length"))
            {
               ...
            }

Когда я проверяю коды на 'headers.Contains ("Content-Length")', он выдает System.Exception: Misused header name. Убедитесь, что заголовки запроса используются с HttpRequestMessage, заголовки ответов с HttpResponseMessage и заголовки содержимого с объектами HttpContent.

Я думаю, что информация об исключении не используется.

Можете ли вы рассказать мне о возможных причинах исключения из заголовков 'headers.Contains ("Content-Length")'?


person 陈黎栋John    schedule 28.09.2015    source источник


Ответы (1)


вы можете проверить наличие такого заголовка

if(Request.Headers["Content-Length"] != null)
person Brij Raj Singh - MSFT    schedule 28.09.2015