加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .NET HTTP POST方法 – Cookie问题

发布时间:2020-12-15 08:47:03 所属栏目:百科 来源:网络整理
导读:我正在尝试使用C#登录hotfile.com.第一个大问题是克服417错误,这条线解决了它: System.Net.ServicePointManager.Expect100Continue = false; 现在,当我尝试使用POST登录时,我收到此错误: You don’t seem to accept cookies. Cookies are required in orde
我正在尝试使用C#登录hotfile.com.第一个大问题是克服417错误,这条线解决了它:
System.Net.ServicePointManager.Expect100Continue = false;

现在,当我尝试使用POST登录时,我收到此错误:

You don’t seem to accept cookies. Cookies are required in order to log in. Help

我已经尝试了几次,并且用Google搜索,我仍然无法登录Hotfile.com ..我的代码是这样的:

string response;
byte[] buffer = Encoding.ASCII.GetBytes("user=XX&pass=XX");

CookieContainer cookies = new CookieContainer();
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://hotfile.com/login.php");
WebReq.Credentials = new NetworkCredential("XX","XX");
WebReq.PreAuthenticate = true;
WebReq.Pipelined = true;
WebReq.CookieContainer = cookies;
WebReq.KeepAlive = true;
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;
WebReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1)";

Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer,buffer.Length);
PostData.Close();

HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
response = _Answer.ReadToEnd();
File.WriteAllText("dump.html",response);

当然,用户和通行证将拥有您的帐户值.

解决方法

这是我为您写的一个工作示例:
var cookies = new CookieContainer();
ServicePointManager.Expect100Continue = false;

var request = (HttpWebRequest)WebRequest.Create("http://www.hotfile.com/login.php");
request.CookieContainer = cookies;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
    writer.Write("user=XX&pass=XX&returnto=/");
}

using (var responseStream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
    var result = reader.ReadToEnd();
    Console.WriteLine(result);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读