POST a form from a .NET Application

2019-05-29 14:19发布

I'm not familiar with http stuff, but how would I be able to submit data to a website? There is a submit button that I would like to "press" from a console app. This is not my own website.

This is part of the page source, not sure if it has any relevance:

<form action="rate.php" method="post">

I looked at the HttpWebRequest class but I am unfamiliar with what properties I need to fill in.

Sorry I'm so vague but I'm not familiar with http.

标签: c# http post
4条回答
可以哭但决不认输i
2楼-- · 2019-05-29 14:45

you can take a look at codeproject HttpWebRequest/Response in a nutshell - Part 1

查看更多
戒情不戒烟
3楼-- · 2019-05-29 14:45

A flexible and easy to use example can be found here: C# File Upload with form fields, cookies and headers

查看更多
神经病院院长
4楼-- · 2019-05-29 14:47
Response.Write("hello!");
Response.End();
查看更多
\"骚年 ilove
5楼-- · 2019-05-29 14:59

Here is a c/p from MSDN.

    // Create a request using a URL that can receive a post. 
    WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");
    // Set the Method property of the request to POST.
    request.Method = "POST";
    // Create POST data and convert it to a byte array.
    string postData = "This is a test that posts this string to a Web server.";
    byte[] byteArray = Encoding.UTF8.GetBytes (postData);
    // Set the ContentType property of the WebRequest.
    request.ContentType = "application/x-www-form-urlencoded";
    // Set the ContentLength property of the WebRequest.
    request.ContentLength = byteArray.Length;
    // Get the request stream.
    Stream dataStream = request.GetRequestStream ();
    // Write the data to the request stream.
    dataStream.Write (byteArray, 0, byteArray.Length);
    // Close the Stream object.
    dataStream.Close ();
    // Get the response.
    WebResponse response = request.GetResponse ();
    // Display the status.
    Console.WriteLine (((HttpWebResponse)response).StatusDescription);
    // Get the stream containing content returned by the server.
    dataStream = response.GetResponseStream ();
    // Open the stream using a StreamReader for easy access.
    StreamReader reader = new StreamReader (dataStream);
    // Read the content.
    string responseFromServer = reader.ReadToEnd ();
    // Display the content.
    Console.WriteLine (responseFromServer);
    // Clean up the streams.
    reader.Close ();
    dataStream.Close ();
    response.Close ();

link to page

The process is pretty easy but you need to first figure out what you need to send and any other special encoding/cookies/etc... that might be needed. I suggest you use Fiddler and/or Firebug for Firefox. One you can see everything taking place in a working request via the web page, then you can mimic the same behavior in your app.

查看更多
登录 后发表回答