C# HttpWebRequest登录后发布问题
我正在创建一个工具,它可以登录一个站点,然后发布一篇博客文章 所有表单都有一个内容类型“application/x-www-form-urlencoded” 我使用以下代码登录:C# HttpWebRequest登录后发布问题,c#,post,login,webrequest,C#,Post,Login,Webrequest,我正在创建一个工具,它可以登录一个站点,然后发布一篇博客文章 所有表单都有一个内容类型“application/x-www-form-urlencoded” 我使用以下代码登录: private void btnSignOn_Click_1(System.Object sender, System.EventArgs e) { string strURL = "http://en.netlog.com/go/login"; Http
private void btnSignOn_Click_1(System.Object sender, System.EventArgs e)
{
string strURL = "http://en.netlog.com/go/login";
HttpWebRequest HWRequest = GetRequest(strURL);
Parameters HWParameters = ReadResponse(HWRequest, strURL);
foreach (Parameter p in HWParameters) {
switch (p.Name) {
case "nickname":
p.Value = txtHalfID.Text;
break;
case "password":
p.Value = txtHalfPassword.Text;
break;
}
}
HWRequest = PostRequest(strURL, HWParameters, encURL);
GetResponse(HWRequest);
}
字节编码后写入流的字符串如下所示:
action=login&target=-Lw\uz&membery=YES&昵称=my昵称和密码=mypassword&q=&referer=home&action=login&target=-Lw\uz&昵称=my昵称和密码=mypassword&membere=YES&netlogVersion=v6.00
(站点有两个登录表单,一个小的,一个在页面中间)
接下来,我按下一个按钮,该按钮将发布一个博客,我将cookies保存在cookiecontainer中,当我检查webrequest时,我可以看到我的个人资料保持登录状态 blogpost的代码几乎相同:private void bntPostBlog_Click(object sender, EventArgs e)
{
string strURL = "http://en.netlog.com/go/manage/blog/view=add";
HttpWebRequest HWRequest = GetRequest(strURL);
Parameters HWParameters = ReadResponse(HWRequest, strURL);
foreach (Parameter p in HWParameters) {
p.Value = HttpUtility.UrlEncode(p.Value);
switch (p.Name) {
case "title":
p.Value = txtTitle.Text;
break;
case "message":
p.Value = txtMsg.Text;
break;
}
}
HWRequest = PostRequest(strURL, HWParameters, encURL);
GetResponse(HWRequest);
}
这次字符串如下所示:
“q=&referer=manage&title=testTitle&message=testMsg&action=\uuuu按钮&unSavedContentWarning=your+blog+message+中的+更改+尚未+保存。&csrftoken\u add=3e16b204&allow\u comments=YES&allow\u ratings=YES&netlogVersion=v6.00”
然而,当我检查回复时,我最终出现在同一个“写博客”屏幕上,没有发布博客
起初,我认为问题出在字符串的编码上,因此blogpost click中出现了额外的URLencode行
有人知道我做错了什么吗?我看不出博客帖子和登录帖子之间的区别。但是,只有登录才能工作
如果你需要更多的代码,我很乐意展示它,我想我会简化它,不发布所有的函数
提前谢谢 你做过这样一个成功的操作并通过Fiddler检查过了吗?你肯定这是post字符串吗?你是对的,我从来没有检查过Fiddler,我在字符串中发现了问题。这只是一个错误的特殊性格问题。谢谢伟大的我总是很乐意帮忙:)