这是一个快速而又脏的应用程序,只需要在短时间内工作。我不是开发人员,所以请不要骂我。 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&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表单没有发布数据。
任何想法我做错了什么?
答案 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。