【发布时间】:2017-03-02 13:31:26
【问题描述】:
我在使用 Web 发布表单时遇到了问题。 我已经下载了页面,我推断了两个必需的值(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 类继承 WebClient。我将这种方法用于登录和工作等其他形式。
最后一个问题是:如果这种方法是错误的,那么执行“下载页面、从 HTML 中提取值、发送表单”这一系列操作的最佳方法是什么?
【问题讨论】: