2

質問は、C# での「HttpClient」の使用に関するものです。サーバー側からの応答を行うと、以下の問題が発生します。「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 ヘッダー名がスローされます。要求ヘッダーが HttpRequestMessage で、応答ヘッダーが HttpResponseMessage で、コンテンツ ヘッダーが HttpContent オブジェクトで使用されていることを確認してください。

例外情報は使用されていないと思います。

「headers.Contains("Content-Length")」からスローされる例外の考えられる理由を教えてください。

4

1 に答える 1

0

このようなヘッダーの存在を確認できます

if(Request.Headers["Content-Length"] != null)
于 2015-09-28T09:38:24.767 に答える