URLSubmit

URLSubmit[url]

submits the specified URL to be executed asynchronously.

URLSubmit[url,{"param1"val1,"param2"val2,}]

submits the specified URL, adding elements with names parami and values vali.

URLSubmit[obj,]

submits the cloud object obj.

URLSubmit[HTTPRequest[],]

submits the specified HTTP request.

Details and Options

  • In URLSubmit[url], url can be a string, a URL object, or a cloud object.
  • URLSubmit[assoc] is equivalent to URLSubmit[HTTPRequest[assoc]].
  • URLSubmit returns a symbolic representation of an asynchronous task.
  • For simple forms of the vali such as numbers and short strings, URLSubmit performs a GET request, with the parami specifying parameters in the query string. In other cases, it performs a POST request.
  • The vali can be strings or numbers, or the following special forms:
  • None,Null,Missing""
    True"true"
    False"false"
    {e1,e2,}e1, e2,
    imagean image in default format
    ExportForm[expr,form]any expression, exported in the specified form
    File["file"]the contents of a file
  • URLSubmit takes the same options as URLRead, together with:
  • HandlerFunctions<||>how to handle events generated
    HandlerFunctionsKeysAutomaticwhat parameters to supply to handler functions
  • For URLSubmit, the default setting for the option Interactive is False.
  • During the asynchronous execution of URLSubmit, the following events can be generated:
  • "BodyReceived"response body successfully received
    "BodyChunkReceived"chunk of body received
    "ConnectionFailed"URL connection failed
    "CookiesReceived"cookies successfully received
    "HeadersReceived"headers successfully received
    "TaskFinished"task finished
    "TaskStatusChanged"status of task changes
  • With the specification HandlerFunctions-><|,"eventi"->fi,|>, fi[assoc] is evaluated whenever eventi is generated. The elements of assoc have keys specified by the setting for HandlerFunctionsKeys.
  • Possible keys specified by HandlerFunctionsKeys include:
  • "Body"body of the response as a string
    "BodyByteArray"raw body of the response as a byte array
    "BodyBytes"raw body of the response as a list of byte values
    "BodyChunk"chunk of the body as a string
    "BodyChunkByteArray"chunk of the body as a byte array
    "BodyChunkBytes"chunk of the body as a list of byte values
    "Headers"list of headers received in the response
    "Cookies"list of cookies received in the response
    "ContentType"content type header
    "StatusCode"status code returned by the server
    "StatusCodeDescription"plain text description of status code
    "ByteCountDownloaded"number of bytes downloaded so far
    "ByteCountTotal"total number of bytes to download
    "FractionComplete"fraction of total downloaded so far
    "Task"the task object generated by URLSubmit
    "TaskStatus""Running", "Suspended", "Finished"
    "EventName"the name of the event being handled
  • Values that have not yet been received are given as Missing["NotAvailable"].
  • If the appropriate headers are not available at the URL being read, "ByteCountTotal" and "FractionComplete" will be given as Missing["NotAvailable"].

Examples

open allclose all

Basic Examples  (5)

Send a request and get notified when the task finishes:

Send a request with parameters:

Get the status code and content type:

Build a URL from components:

More complex requests can use HTTPRequest:

Scope  (5)

Receive the body of the response as a string:

Receive the body of the response as a list of bytes:

Receive the body of the response as a ByteArray:

Receive chunks of the response as strings:

Receive chunks of the response as lists of bytes:

Receive chunks of the response as byte arrays:

Receive a notification when the task finishes:

Receive cookies, headers, and task status when the task status changes:

Get the status code and description when the headers are received:

Get the status code and description when the headers are received:

Get status code for a resource that does not exist:

Options  (1)

CookieFunction  (1)

Properties & Relations  (2)

URL and CloudObject are fully supported:

Use URLRead to perform a synchronous request:

Use URLSubmit to assign the variable asynchronously:

Introduced in 2016
 (11.0)
 |
Updated in 2017
 (11.2)