使用HttpWebRequest使用表单令牌提交表单

时间:2013-09-30 23:31:33

标签: c# html httpwebrequest postdata

我的问题是我有一个我要提交的基本表格。 首先,我可以使用HttpWebRequest和Response类。我知道他们 :) 但在这种情况下情况略有不同。 我想提交的表单有一些独特的形式令牌。 所以我需要使用表单元素发布该标记。 但我不能读写反应。 首先,我正在阅读令牌,然后尝试发布它,但最有可能是当我尝试发布它时重新生成代码:) 所以我必须使用我使用的相同请求发布数据:) 基本上形式是这样的。你可以看到一个隐藏的输入:)

<form action="/" method="post">
    <input name="authenticity_token" type="hidden" value="5019d19a14a46b489a7a3a372d71d804251369b9">
    <input id="user_name" name="user[name]" size="30" type="text">
    <input id="user_password" name="user[password]" size="30" type="password">
    <input id="user_password_confirmation" name="user[password_confirmation]" size="30" type="password">
    <input id="user_submit" name="commit" type="submit" value="Create Account">
</form>

有什么建议吗? 谢谢大家

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案 如果有人需要它: 在这种情况下,网站根据cookie更改令牌 所以只需定义两个HttpWebRequest。第一个是阅读,另一个是发帖。

并做出相同的第一次请求CookieContainer到新的CookieContainer(); 然后使用相同的帖子请求CookieContainer来读取RequestContainer 这就是重点......