Wolfram Language & System 11.0 (2016)|Legacy Documentation

This is documentation for an earlier version of the Wolfram Language.View current documentation (Version 11.2)

HTTPRequest

HTTPRequest[url]
represents an HTTP request for the specified URL.

HTTPRequest[assoc]
represents an HTTP request built from the components in the association assoc.

HTTPRequest[url,assoc]
represents an HTTP request for the specified URL with additional elements such as headers given by assoc.

Details and OptionsDetails and Options

  • HTTPRequest gives a symbolic representation of an HTTP request; it does not execute the request.
  • In HTTPRequest[url], url can be a string, a URL object, or a cloud object.
  • The URL can also be specified by giving the following components in an association:
  • "Scheme"URL scheme
    "User"user information
    "Domain"domain name or host
    "Port"port number (as an integer)
    "Path"path list or string
    "Query"query string or list of parameter-value pairs
  • The following additional entries can also be given in the association:
  • Method"GET"method to use for the HTTP request
    "Body"""contents of message body to be sent
    "ContentType"Automaticcontent-type header for the request
    "Username"""username to use for the request
    "Password"""password to use for the request
    "Cookies"Automaticcookies to send to the server
    "UserAgent"Automaticuser agent string to send
    "Headers"{}list of headers to be sent to the server
  • The setting for "Body" can have the following forms:
  • "string"string to be sent literally
    ByteArray[]byte array to be sent literally
    {b1,b2,b3,}list of bytes to be sent literally
    {"par1""val1","par2""val2",}list of parameters and values to be sent URL encoded
    {"par1"{"val11",},}list with multiple values associated with a single parameter
    <|"key1"val1,"key2"val2,|>alternative form for list of parameters and values
    {"par1"File[],"par2"File[],}files to be sent with multipart encoding
    {"par1"assoc1,}multipart encoding with detailed specifications for each part
  • Detailed specifications for each part in a multipart encoding are given as an association with the following elements:
  • "Content"the content, as a string, byte array, file object, etc.
    "Name"the name to assign to the part
    "MIMEType"the MIME type to assign to the part
  • The setting "Cookies"->Automatic specifies that cookies from $Cookies for the domain corresponding to url should be sent. "Cookies" can also give an explicit list of associations representing cookies.
  • The setting for "Headers" can be a list of rules or an association.
  • The default "UserAgent" is typically "Wolfram HTTP Client xxxx", where xxxx is a version number.
  • HTTPRequest supports the following options:
  • CharacterEncodingAutomaticcharacter encoding for strings sent
    CookieFunctionAutomaticfunction to apply to each cookie received
    FollowRedirectsTruewhether to follow HTTP redirects
    InteractiveTruewhether to allow interactive authentication dialogs
    TimeConstraintInfinitytime to wait for a response
    VerifySecurityCertificatesTruewhether to verify SSL security certificates
  • The setting CharacterEncoding->"enc" specifies that all strings that appear in the request should be encoded using the encoding enc before being sent to the server.
  • The setting CharacterEncoding->None specifies that no change should be made to strings before sending them to the server.
  • With CharacterEncoding->Automatic, the encoding is taken from the "ContentType" element if this is specified; otherwise the encoding is "UTF8".
  • TimeConstraint->t allows a maximum of t seconds for connection to the URL specified in the HTTP request, and reading from it.
  • TimeConstraint-><|"Connecting"->tc,"Reading"->tr|> specifies separate timeouts for connecting to the URL, and reading from it.
  • HTTPRequest[]["prop"] extracts the value for the property prop of the HTTP request.
  • Possible properties include all components and additional elements, as well as:
  • "Body"body of the request as a string
    "BodyByteArray"raw body of the request as a ByteArray object
    "BodyBytes"raw body of the request as a list of byte values
    "FormRules"rules for all form elements in the request
    "PathString"complete path as a string
    "QueryString"complete query string
    "AbsolutePath"complete path as a string, including scheme and domain
    "AbsoluteDomain"complete domain as a string, including scheme
    "Properties"list of all possible properties
    "PropertyAssociation"association giving values of all properties
Introduced in 2016
(11.0)