C# 无法发送表单的POST数据

C# 无法发送表单的POST数据,c#,http-post,webclient,C#,Http Post,Webclient,我对Web Post表单有问题。 我已经下载了页面,我推断了两个必需的值(form_build_id和form_token),但是一旦发送了POST,服务器就不会收到POST中的任何内容 排除的错误: 错误链接(可以下载页面) 不正确的外推数据(已验证) 错误的字符串myParameters(已验证) 我已经手动测试了表单,它运行良好 有什么想法吗?在那里我把头撞了两天 using (WebClientEx wc = new WebClientEx()) {

我对Web Post表单有问题。 我已经下载了页面,我推断了两个必需的值(form_build_id和form_token),但是一旦发送了POST,服务器就不会收到POST中的任何内容

排除的错误:

  • 错误链接(可以下载页面)
  • 不正确的外推数据(已验证)
  • 错误的字符串myParameters(已验证)
  • 我已经手动测试了表单,它运行良好
有什么想法吗?在那里我把头撞了两天

using (WebClientEx wc = new WebClientEx())
        {
            wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            string HTMLPage = wc.DownloadString(CREAT_TICKET_URL);

            string form_build_id    = SearchValue(HTMLPage, "<input type=\"hidden\" name=\"form_build_id\"", "value=\"", "\"  />");
            string form_token       = SearchValue(HTMLPage, "<input type=\"hidden\" name=\"form_token\"", "value=\"", "\"  />");

            string myParameters = "macchina=" + cmacExtID + "&utente=" + custExtID + "&oggetto=" + Title + "&body=" + Note + "&op=Conferma&form_build_id=" + form_build_id + "&form_token=" + form_token + "&form_id=app_form_new_ticket";

            string HtmlResult = wc.UploadString(CREAT_TICKET_URL, myParameters);
        }
使用(WebClientEx wc=new WebClientEx())
{
wc.Headers[HttpRequestHeader.ContentType]=“application/x-www-form-urlencoded”;
string HTMLPage=wc.DownloadString(创建票证URL);
字符串形式_build_id=SearchValue(HTMLPage,“”);
字符串形式_token=SearchValue(HTMLPage,“”);
字符串myParameters=“macchina=“+cmacExtID+”&Utene=“+custExtID+”&oggetto=“+Title+”&body=“+Note+”&op=Conferma&form\u build\u id=“+form\u build\u id+”&form\u token=“+form\u token+”&form\u id=app\u form\u new\u ticket”;
字符串HtmlResult=wc.UploadString(创建票证URL,myParameters);
}
注意:WebClient类继承WebClient。我将这种方法用于其他形式,如登录和工作


最后一个问题是:如果这种方法是错误的,那么执行这一系列操作的最佳方法是什么“下载页面,从HTML中提取值,发送帖子表单”?

问题是标题! 应该为每个调用设置标题,而我认为只设置第一次就足够了

using (WebClientEx wc = new WebClientEx())
    {
        wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
        string HTMLPage = wc.DownloadString(CREAT_TICKET_URL);

        string form_build_id    = SearchValue(HTMLPage, "<input type=\"hidden\" name=\"form_build_id\"", "value=\"", "\"  />");
        string form_token       = SearchValue(HTMLPage, "<input type=\"hidden\" name=\"form_token\"", "value=\"", "\"  />");

        string myParameters = "macchina=" + cmacExtID + "&utente=" + custExtID + "&oggetto=" + Title + "&body=" + Note + "&op=Conferma&form_build_id=" + form_build_id + "&form_token=" + form_token + "&form_id=app_form_new_ticket";

        wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
        string HtmlResult = wc.UploadString(CREAT_TICKET_URL, myParameters);
    }
使用(WebClientEx wc=new WebClientEx())
{
wc.Headers[HttpRequestHeader.ContentType]=“application/x-www-form-urlencoded”;
string HTMLPage=wc.DownloadString(创建票证URL);
字符串形式_build_id=SearchValue(HTMLPage,“”);
字符串形式_token=SearchValue(HTMLPage,“”);
字符串myParameters=“macchina=“+cmacExtID+”&Utene=“+custExtID+”&oggetto=“+Title+”&body=“+Note+”&op=Conferma&form\u build\u id=“+form\u build\u id+”&form\u token=“+form\u token+”&form\u id=app\u form\u new\u ticket”;
wc.Headers[HttpRequestHeader.ContentType]=“application/x-www-form-urlencoded”;
字符串HtmlResult=wc.UploadString(创建票证URL,myParameters);
}