2010-08-25 176 views
1

我想使用的WebRequest和WebResponse对象通过C#来访问网站,阿拉伯语的WebRequest C#

我登录到网站,并保存cookie来进一步浏览它, 的问题是,该网站是阿拉伯语,不知何故,我从网站得到了格式化的消息,表明我的浏览器不支持阿拉伯语。

也许我可以在请求对象中添加一些东西来确保网站支持阿拉伯语。

这是我用过,请让我知道如何更新它的代码:

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

设置用户代理字符串以包含阿拉伯语言。可能解决你的问题。 – 2010-08-25 12:19:51

回答

1

喜欢的Mikael建议试试这个:

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

我添加了我使用的代码,请让我知道如何更新它 – 2010-08-26 07:32:57

+0

您可以通过以下字符串来控制支持的语言:“Accept-Language:ar”,其中ar代表阿拉伯语。有关语言的完整列表,请参阅: http://www.loc.gov/standards/iso639-2/php/code_list.php – 2010-08-26 13:51:16

0

这里是你如何在VB中做到这一点。 net:

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)