--- title: "system.net.httpPost" description: "Retrieves the document at the given URL using the HTTP POST protocol." --- # system.net.httpPost > Retrieves the document at the given URL using the HTTP POST protocol. This function is used in **Python Scripting**. ## Description Retrieves the document at the given URL using the HTTP POST protocol. If a parameter dictionary argument is specified, the entries in the dictionary will encoded in "application/x-www-form-urlencoded" format, and then posted. You can post arbitrary data as well, but you'll need to specify the MIME type. The document is then returned as a string. Keep in mind that JRE proxy settings will influence how these functions conduct their network activities. When using a non-bundled JRE, this is typically set via the Java Control Panel. ## Client Permission Restrictions This scripting function has no [Client Permission](projects\project-properties\project-properties.md#client---permissions) restrictions. ## Syntax #1 `system.net.httpPost(url, postParams)` ### Parameters |Type|Parameter|Description| |--|--|--| |String |`url`| The URL to post to.| |PyDictionary| `postParams`| A dictionary of name: value key pairs to use as the post data.| ### Returns **String** - The content returned for the POST operation. ### Scope All ## Syntax #2 `system.net.httpPost(url, contentType, postData, connectTimeout, readTimeout, username, password, headerValues, bypassCertValidation, throwOnError)` ### Parameters |Type|Parameter|Description| |--|--|--| |String| `url` | The URL to post to.| |String| `contentType` | [Optional]The MIME type to use in the HTTP "Content-type" header.| |String |`postData`| The raw data to post via HTTP.| |Integer| `connectTimeout` | The timeout for connecting to the url. In milliseconds. Default is 10,000.| |Integer| `readTimeout`| The read timeout for the get operation. In milliseconds. Default is 60,000.| |String| `username` | If specified, the call will attempt to authenticate with basic HTTP authentication.| |String| `password`| The password used for basic http authentication, if the username parameter is also present.| |PyDictionary |`headerValues` | [Optional] A dictionary of name/value pairs that will be set in the http header.| |Boolean |`bypassCertValidation`| [Optional] If the target address is an HTTPS address, and this parameter is True,the system will bypass all SSL certificate validation. This is not recommended, though is sometimes necessary for self-signed certificates.| |Boolean| `throwOnError`| [Optional] Set to False if you wish to get the error body rather than a python exception if the POST request returns an error code (non-200 responsive). Default is True.| ### Returns **String** - The content returned for the POST operation. ### Scope All If you are using JSON, check out the [system.util.jsonEncode](appendix/scripting-functions/system-util/system-util-jsonEncode.md) and [system.util.jsonDecode](appendix/scripting-functions/system-util/system-util-jsonDecode.md). ## Code Examples ```python title="Code Snippet" # This code posts a name (first and last) to the post testing page at # "http://www.snee.com/xml/crud/posttest.cgi", and returns the resulting page # as a string. page = system.net.httpPost("http://www.snee.com/xml/crud/posttest.cgi", {"fname":"Billy", "lname":"Bob"}) print page ``` ```python title="Code Snippet" # This code sends an XML message to a hypothetical URL. message = "here is the element" system.net.httpPost("http://www.posttome.xyz/posthere", "text/xml", message) ```