如题。
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分钟后登录。"
,我想是不是要写什么代理或者什么的,请高手帮帮忙。。
估计是51.com那边做了机器人识别把,如果登录频繁就把当成机器人处理,拒绝登录!
还有可能你的response拿到以后里面应该有登录的idstring(一般放在cookie)这个你是怎么使用的!
给request设置一下HttpHeader,将UserAgent设置为ie浏览器的Agent. 这样只是欺骗一下服务器.
如果服务器是根据ip来作判断的,这样也没用.
你可以试一下.