2017-05-15 1 views
0

にAAO扱いますAccept-Languageヘッダーをsv-SEsvに変更しましたが、同じ結果が得られました。私はGetByteArrayAsyncを取得してこれをUTF-8に変換しようとしましたが、そこには運がありません。C#のHttpClientは、スウェーデンの文字が応答

private HttpClient client = new HttpClient(); 

public HttpService() 
{ 
    client.DefaultRequestHeaders.Add("Accept-Language", "sv"); 
    client.DefaultRequestHeaders.Add("Accept-Charset", "utf-8"); 
} 

public string GetRequest(string url) 
{ 
    using (HttpResponseMessage response = client.GetAsync(url).Result) 
    { 
     //Same result 
     //var byteArray = response.Content.ReadAsByteArrayAsync().Result; 
     //var result = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length); 
     using (HttpContent content = response.Content) 
     { 
      var result = content.ReadAsStringAsync().Result; 
      return result; 
     } 
    } 

} 

更新:サーバーから

ヘッダ:

HTTP/1.1 200 OK 
Cache-Control: private 
Content-Length: 31903 
Content-Type: application/json 
Expires: Sun, 14 May 2017 22:00:00 GMT 
Server: Microsoft-IIS/8.5 
Set-Cookie: ASPSESSIONIDCSACQTRA=<REMOVED>; path=/ 
X-Powered-By: ASP.NET 
Date: Mon, 15 May 2017 13:10:18 GMT 
+2

サーバーはどのエンコードを使用していますか? (ヘッダは何のように見えるのですか?) –

+0

@JonSkeetレスポンスヘッダの更新を参照してください – Ogglas

+1

"[すべてのソフトウェア開発者が絶対に最低限必要な、絶対にUnicodeと文字セットについての知識が必要です(言い訳はありません)](https://www.joelonsoftware .com/2003/10/08 /ソフトウェア開発者全員 - 絶対に積極的に必要な、ユニコードとキャラクタセットについての言い訳なし) " –

答えて

1

はあなたに@RemusRusanuをありがとうございます。作業コード:

public string GetRequest(string url) 
{ 
    using (HttpResponseMessage response = client.GetAsync(url).Result) 
    { 
     var byteArray = response.Content.ReadAsByteArrayAsync().Result; 
     var result = Encoding.GetEncoding("ISO-8859-1").GetString(byteArray, 0, byteArray.Length); 
     return result; 
    } 
} 
関連する問題