2012-04-10 96 views
0

有一个多语种网站。当我从浏览器查看html源代码时,我看到了我的语言中的数据。但是,当我创建webrequest并获取HTML时,我会用英文获取数据。从多语种网站获取不同语言的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(); 

感谢。

回答

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"; 
+0

谢谢你的帮助。我以其他方式使用它: request.Headers.Add(“Accept-Language:tr-tr,tr; q = 0.8,en-us; q = 0.5,en; q = 0.3”); – burakokumus 2012-04-10 09:27:04

0

在你的WebRequest,添加页眉条目:

Accept-Language: tk 

它会告诉ASP.NET您的首选语言。你必须实现语言切换功能。 MSDN在这里有一个ASP.NET Globalization and Localization的页面。

+0

非常感谢:) – burakokumus 2012-04-10 09:29:54

2
WebHeaderCollection headerCollection = request.Headers;  
headerCollection.Add("Accept-Language:tr"); 
+0

感谢您的帮助。我使用了类似于: request.Headers.Add(“Accept-Language:tr-tr,tr; q = 0.8,en-us; q = 0.5,en; q = 0.3”); – burakokumus 2012-04-10 09:28:29