C#发布到浏览器失败,有什么想法吗?

时间:2010-10-25 13:29:12

标签: c# browser post

这是一个快速而又脏的应用程序,只需要在短时间内工作。我不是开发人员,所以请不要骂我。 asp中的以下代码工作正常(秘密信息替换为example.com和abc 123)。

我知道下面的练习非常糟糕,但这只是为了演示目的:

<form method="post" action="https://example.com/asppage.aspx" id="frm_main">
<input type="hidden" name="STATE" id="STATE" value="ABC" />
<input type="hidden" name="VALIDATION" id="VALIDATION" value="123/>
<input type="submit" name="refresh_progress" value="Check Status" id="refresh_progress" /></form>

但是,我的c#post中的相同代码不起作用:

string PostData = "STATE=ABC&amp;VALIDATION=123";
webBrowser1.Navigate("https://example.com/asppage.aspx", "_blank", Encoding.Default.GetBytes(PostData), "Content-Type: application/x-www-form-urlencoded\n\r");

当弹出新的浏览器窗口时,默认的asppage.aspx表单没有发布数据。

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:1)

您正在为webBrowser提供表单的html,POST数据是表单字段的名称和值的序列化格式,这是您需要在Navigate方法中放置的。

postdata需要采用以下格式:

inputname1=value1&inputname2=value2&inputname3=value3

您还需要对字符串进行uri编码,并在方法调用中包含Content-Type: application/x-www-form-urlencoded作为第四个参数。

答案 1 :(得分:0)

您的POST格式完全错误。

请参阅specification