2010-08-25 4 views
1

Я пытаюсь получить доступ к сайту через C# с помощью WebRequest и объект WebResponse,арабский WebRequest C#

Я вошел на сайт и сохранить куки для дальнейшего просмотра его, Проблема заключается в том, что веб-сайт арабский и как-то я получил отформатированное сообщение с сайта, что указывает на то, что мой браузер не поддерживает арабский.

Возможно, я могу добавить что-то к объекту запроса, чтобы гарантировать, что сайт поддерживает арабский язык.

Это код, который я использовал, пожалуйста, дайте мне знать, как обновить:

string formUrl = "http://www.kuwaitlook.com/Ar/Residential.asp"; 
string formParams = string.Format("Mega={0}", searchTarget); 

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(formUrl); 
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1);Accept-Language:ar"; 

req.ContentType = "application/x-www-form-urlencoded"; 
req.Method = "POST"; 
req.Headers.Add("Cookie", cookieHeader); 

byte[] bytes = Encoding.ASCII.GetBytes(formParams); 
req.ContentLength = bytes.Length; 

using (Stream os = req.GetRequestStream()) { 
    os.Write(bytes, 0, bytes.Length); 
} 
WebResponse resp = req.GetResponse(); 

StreamReader streamReader = new StreamReader(resp.GetResponseStream()); 

using (StreamWriter writer = new StreamWriter("text.xml")) { 
    string line; 
    while ((line = streamReader.ReadLine()) != null) { 
     writer.WriteLine(line); 
    } 
} 
+0

Укажите строку пользовательского агента, содержащую арабский язык. Можете решить вашу проблему. –

ответ

1

Как Микаэль предложил попробовать это один:

HttpWebRequest request=(HttpWebRequest)WebRequest.Create("http://www.yourdomain.com"); 
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1);Accept-Language:ar" 
+0

Я добавил код, который я использовал, сообщите мне, как я могу его обновить. –

+0

Вы можете управлять языками, поддерживаемыми следующей строкой: «Accept-Language: ar», где ar для арабского. Полный список языков см .: http://www.loc.gov/standards/iso639-2/php/code_list.php –

0

Вот как вы это делаете в VB. нетто:

Dim SW As StreamWriter 
Dim ar As System.Text.UTF8Encoding = New System.Text.UTF8Encoding 

Request.ContentLength = ar.GetByteCount(your_string)  ' Here 
SW = New StreamWriter(Request.GetRequestStream(), ar) ' And Here 
SW.Write(your_string)