首页 新闻 搜索 专区 学院

关于在c/s下面,使用webRequest登录网站的问题?

0
[已关闭问题] 解决于 2008-12-24 09:32

如题。

 

        public string SendRequest(string url, string requestString)
{
try
{
byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(requestString);
request
= (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
request.ContentType
= "text/html; charset=gb2312";
request.ContentLength
= requestBytes.Length;
request.Referer
= "http://www.51.com";
request.Method
= "POST";
request.CookieContainer
= cookie;
using (Stream writer = request.GetRequestStream())
{
writer.Write(requestBytes,
0, requestBytes.Length);
}
response
= (HttpWebResponse)request.GetResponse();
StreamReader reader
= new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
string str = reader.ReadToEnd();
reader.Close();
response.Close();
return str;
}
catch (Exception ex)
{
throw ex;
}
}

我使用这个登录51.com结果总是提示"不能频繁登录,请10分钟后登录。"

,我想是不是要写什么代理或者什么的,请高手帮帮忙。。

 

问题补充: 出现了登陆频繁之后我用IE登录还是没问题啊.. 用webClient登录也可以。只不过不能保存session 这点我很郁闷。。 还有userAgent怎么设置??贴点代码吧!!
yy.net的主页 yy.net | 初学一级 | 园豆:200
提问于:2008-12-22 15:18
< >
分享
其他回答(1)
0

估计是51.com那边做了机器人识别把,如果登录频繁就把当成机器人处理,拒绝登录!

还有可能你的response拿到以后里面应该有登录的idstring(一般放在cookie)这个你是怎么使用的!

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-22 15:33
0

给request设置一下HttpHeader,将UserAgent设置为ie浏览器的Agent. 这样只是欺骗一下服务器.

如果服务器是根据ip来作判断的,这样也没用.

你可以试一下.

玉开 | 园豆:8822 (大侠五级) | 2008-12-23 09:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册