有一个Web应用程序,它有一个登录名。登录后,会在弹出窗口中打开一个表单。我有登录访问权限,但我想使用控制台应用程序以编程方式提交此表单。
我尝试了以下代码(在main函数内部)。程序执行时没有任何错误,但没有数据保存在应用程序中。
WebRequest req = WebRequest.Create("http://example.com/Request");
string postData = "Key=LogDetails&billHours=112";
byte[] send = Encoding.Default.GetBytes(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = send.Length;
Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string returnvalue = sr.ReadToEnd();
也许这不是提交具有登录信息的表单的正确方法。这是正确的。
如何检查我是否发布到正确的网址,并且所有数据都以正确的方式传递。
表单标记: https://jsfiddle.net/semumwwg/1/
returnValue中的响应:
<html>
<body>
<script language="JavaScript"> var undefined;
if(typeof(opener) == "undefined" || opener == undefined){ window.top.location="/Request?Key=login&ST=Y&childProcessId=r92FySfS92Bs92BP9CTzQKlRmwOw93D93D";}
else{try{tmp = window.opener.name;window.close();opener.top.location='/Request?Key=login&ST=Y&childProcessId=r92FySfS92Bs92BP9CTzQKlRmwOw93D93D';}catch(exception){top.location='/Request?Key=login&ST=Y&childProcessId=r92FySfS92Bs92BP9CTzQKlRmwOw93D93D';}}
</script>
</body>
</html>