私はちょうどthisという質問を投稿しました。 それは、順番に、以下の新しい質問を作成:HttpResponseMessage
からHttpResponseMessage.Content.Header htmlソースのメタタグの文字セット設定を無視しています
私の理解が正しければ、StreamContent
オブジェクトは、HttpClient.GetAsync
を経由してHTTPリクエストを作成するときに作成されます。ヘッダープロパティーの一部またはその一部は、HTMLソースファイルに含まれるメタタグに従って設定されます。
たとえば、メタタグは、ファイルの内容をどの文字セットでエンコードするかをレスポンスオブジェクトに伝えることができます。
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
このような行を含むリソースへの要求を実行すると、この設定でHttpResponseMessage.Content.Header
が生成されます。
この質問の先頭に記載されている他の質問では、正しいエンコーディングなしで作成されるレスポンスオブジェクトについて述べます。こうした互換性のない応答を生成するHTMLソースが適切にエンコードされた応答を作成するための責任がある設定が含まれていないので:そのサイトのレスポンスが文字セットの設定は、メタタグに含まれて渡されていない理由は何であるか
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1255">
正しくない文字セットでレンダリングされていますか?
フィドラーズ・ヘッダの詳細... 両方のサイトは、文字セットの設定とメタタグが含まれていますが、1、何らかの理由で、それをミス:
ここで質問を絵で説明があります
一作業: (除去クッキーヘッダ)
要求の両方のために要求:
GET http://www.ynet.co.il/home/0,7340,L-8,00.html HTTP/1.1
Host: www.ynet.co.il
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
If-Modified-Since: Thu, 31 Mar 2016 10:04:39 GMT
応答:
HTTP/1.1 200 OK
vg_id: 1
X-me: 06
Content-Type: text/html; charset=UTF-8
Last-Modified: Thu, 31 Mar 2016 10:38:57 GMT
Accept-Ranges: bytes
VX-Cache: HIT
WAI: 01
V-TTL: 0
backend-cache-control:
Content-Length: 410685
Vary: Accept-Encoding
Date: Thu, 31 Mar 2016 10:38:48 GMT
Connection: keep-alive
問題の1:
要求:
GET http://winedepot.co.il/ HTTP/1.1
Host: winedepot.co.il
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: __utma=201832727.725995063.1458660502.1459413977.1459418530.8; __utmz=201832727.1458660502.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmc=201832727; ASPSESSIONIDCQTRQCAQ=FEOHEBFCBGABBKOBAHOGKBGB
Connection: keep-alive
応答:
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 118225
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 31 Mar 2016 10:36:21 GMT
'HttpResponseMessage'クラスがレスポンスHTMLを解析してメタタグを読み取っていないことはかなり確信しています。私は間違っているかもしれません。表示されている動作がこれらのタグに由来していることを確認していますか?その場合、どのように確認しましたか? – CodeCaster
これは上記の抜粋の結果を分析することを前提にしています。 – Veverke
ええ、あなたはHTTPレスポンス全体を表示しないので、キャラクタセットが実際にレスポンスヘッダから来ていないことを確認する方法はありません。 – CodeCaster