2012-04-10 100 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