0

有一个多语言网站。当我从浏览器查看 html 源代码时,我会以我的语言查看数据。但是当我创建一个 webrequest 并获取 HTML 时,我得到的是英文数据。

  • 在我的浏览器中,lan​​g 属性是: 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 回答