0

多言語ウェブサイトがあります。ブラウザーから html ソースを表示すると、自分の言語でデータが表示されます。しかし、webrequest を作成して HTML をフェッチすると、データが英語で取得されます。

  • 私のブラウザでは、lang 属性は lang="tr" xml:lang="tr" です。
  • HTML を取得すると、次のようになります: lang="en" xml:lang="en"

トルコ語で HTML を取得したい。これどうやってするの?


これは私が取得する方法です:

        WebRequest request = WebRequest.Create(webUrl);
        request.Method = "POST";
        byte[] byteArray = Encoding.UTF8.GetBytes("");
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = byteArray.Length;

        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        WebResponse response = request.GetResponse();
        dataStream = response.GetResponseStream();

        StreamReader reader = new StreamReader(dataStream);
        htmlcontent = reader.ReadToEnd();

        reader.Close();
        dataStream.Close();
        response.Close();

前もって感謝します。

4

3 に答える 3

2
WebHeaderCollection headerCollection = request.Headers;    
headerCollection.Add("Accept-Language:tr");
于 2012-04-10T08:17:51.580 に答える
1

Accept-Languageリクエストヘッダーを追加してみてください。.NET では、次のように使用できますHttpRequestHeader.ContentLanguage

request.Headers[HttpRequestHeader.AcceptLanguage] = 
                                         "tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4";
于 2012-04-10T08:16:22.253 に答える
0

WebRequest で、次のヘッダー エントリを追加します。

 Accept-Language: tk

これにより、ASP.NET に優先言語が通知されます。言語切り替え機能を実装している必要があります。MSDN には、ASP.NET のグローバリゼーションとローカリゼーションに関するページがあります。

于 2012-04-10T08:17:27.750 に答える