C# 通过按钮C从Post请求获取页面#

C# 通过按钮C从Post请求获取页面#,c#,html,post,webrequest,webresponse,C#,Html,Post,Webrequest,Webresponse,我试图从选择按钮后生成的网页中获取信息。这个信息是由一个Post请求生成的(我想),我正在尝试使用c#发送这个请求。我对不同post请求的所有尝试都会导致404错误。我也尝试过使用谷歌chrome和internet explorer的扩展来查找按键发送的信息,但是我没有发现任何结论。我看到过关于如何发送post请求的帖子,但到目前为止没有任何帮助 我的网页如下所示: <FORM METHOD="POST" ACTION="/postYYYY"> <INPUT TYPE="sub

我试图从选择按钮后生成的网页中获取信息。这个信息是由一个Post请求生成的(我想),我正在尝试使用c#发送这个请求。我对不同post请求的所有尝试都会导致404错误。我也尝试过使用谷歌chrome和internet explorer的扩展来查找按键发送的信息,但是我没有发现任何结论。我看到过关于如何发送post请求的帖子,但到目前为止没有任何帮助

我的网页如下所示:

<FORM METHOD="POST" ACTION="/postYYYY">
<INPUT TYPE="submit" VALUE="YY YYYY">
</FORM>
</TD>
</TR>
<TR align="center">
<TD><BR>
<FORM METHOD="POST" ACTION="/postXXXX">
<INPUT TYPE="submit" VALUE="XX XXXX">
WebRequest request = WebRequest.Create("http://192.168.254.12/postXXXX");
byte[] buffer = System.Text.Encoding.GetEncoding(1252).GetBytes("VALUE=XX XXXX");
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
Stream requestStream = request.GetRequestStream();
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Close();
Console.Write(buffer.Length);
Console.Write(request.ContentLength);
WebResponse myResponse = request.GetResponse();
string result = "";
StreamReader reader = new StreamReader(myResponse.GetResponseStream());
result = reader.ReadToEnd();
Console.WriteLine(result);
我得到404个错误-我想这是由于我的文章,但我没有尝试或在HTML中的任何信息组合的工作

例外情况: `System.dll中发生“System.Net.WebException”类型的未处理异常


附加信息:远程服务器返回错误:(404)找不到。`

我已经解决了我的问题

Post请求不需要提交任何“内容”,因此将信息写入缓冲区无法正常工作。我不知道在这种情况下发送POST请求的首选方法,但对我来说。。。我通过更改

byte[] buffer = System.Text.Encoding.GetEncoding(1252).GetBytes("whatever");

而且,实际上我拥有的大部分代码都是不需要的。最终代码:

    WebRequest request = WebRequest.Create("http://192.168.254.12/postInstrumentStatus");
    request.Method = WebRequestMethods.Http.Post;
    request.ContentType = "application/x-www-form-urlencoded";
    WebResponse myResponse = request.GetResponse();
    string result = "";
    StreamReader reader = new StreamReader(myResponse.GetResponseStream());
    result = reader.ReadToEnd();
    Console.WriteLine(result);

如果有任何错误,请纠正我。我确信我有一些误解。

我没有在您的C#code中看到
postXXXX
WebRequest-request=WebRequest.Create(“http://192.168.254.12/postXXXX");Daniel,我的代码的第2行是我试图为请求放置相关信息的地方。我不知道这意味着什么。B2k,当我这样做时,我得到一个异常,它说“服务器违反了协议。Section=ResponseStatusLine”
    WebRequest request = WebRequest.Create("http://192.168.254.12/postInstrumentStatus");
    request.Method = WebRequestMethods.Http.Post;
    request.ContentType = "application/x-www-form-urlencoded";
    WebResponse myResponse = request.GetResponse();
    string result = "";
    StreamReader reader = new StreamReader(myResponse.GetResponseStream());
    result = reader.ReadToEnd();
    Console.WriteLine(result);