1

我正在尝试使用 WebRequest 和 WebResponse 对象通过 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);
    }
}
4

2 回答 2

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"
于 2010-08-25T13:28:17.857 回答
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)
于 2011-04-25T03:08:38.973 回答