C# HttpWebRequest登录后发布问题

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

我正在创建一个工具,它可以登录一个站点,然后发布一篇博客文章

所有表单都有一个内容类型“application/x-www-form-urlencoded”

我使用以下代码登录:

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,我在字符串中发现了问题。这只是一个错误的特殊性格问题。谢谢伟大的我总是很乐意帮忙:)