Submit a POST form and download the result web page


 * prepare a request object, that is created for a given URI
 * write the PARAMETERS string to the request stream.
 * retrieve the response and read from its stream.

URI = 'http://www.example.com' PARAMETERS="lang=en&amp;field1=1"

from System.Net import WebRequest request = WebRequest.Create(URI) request.ContentType = "application/x-www-form-urlencoded" request.Method = "POST"

from System.Text import Encoding bytes = Encoding.ASCII.GetBytes(PARAMETERS) request.ContentLength = bytes.Length reqStream = request.GetRequestStream reqStream.Write(bytes, 0, bytes.Length) reqStream.Close

response = request.GetResponse from System.IO import StreamReader result = StreamReader(response.GetResponseStream).ReadToEnd print result

This uses the System.Net.WebRequest class.

Here is a simple function, which works whether you are making a 'POST' or a 'GET': from System.Net import WebRequest from System.IO import StreamReader from System.Text import Encoding

def UrlOpen(uri, parameters=None): request = WebRequest.Create(uri) if parameters is not None: request.ContentType = "application/x-www-form-urlencoded" request.Method = "POST" bytes = Encoding.ASCII.GetBytes(parameters) request.ContentLength = bytes.Length reqStream = request.GetRequestStream reqStream.Write(bytes, 0, bytes.Length) reqStream.Close

response = request.GetResponse result = StreamReader(response.GetResponseStream).ReadToEnd return result

Back to Contents.