我正在尝试模拟一个不需要任何身份验证的外部服务器上的表单的 POST,并捕获包含结果页面的字符串。这是我第一次这样做,所以我正在寻求一些关于我目前所拥有的帮助。这是表单的样子:
<FORM METHOD="POST" ACTION="/controller" NAME="GIN">
<INPUT type="hidden" name="JSPName" value="GIN">
Field1:
<INPUT type="text" name="Field1" size="30"
maxlength="60" class="txtNormal" value="">
</FORM>
我的代码是这样的:
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "Field1=VALUE1&JSPName=GIN";
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://XXX/controller");
myRequest.Method = "POST";
myRequest.ContentType = "text/html";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
StreamReader reader = new StreamReader(newStream);
string text = reader.ReadToEnd();
MessageBox.Show(text);
newStream.Close();
目前,代码返回“Stream was not readable”。
最佳答案
您想读取响应流:
using (var resp = myRequest.GetResponse())
{
using (var responseStream = resp.GetResponseStream())
{
using (var responseReader = new StreamReader(responseStream))
{
}
}
}
关于c# - 使用 HttpWebRequest POST 到外部服务器上的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2136857/