4D v13.4

HTTP Request

Home

 
4D v13.4
HTTP Request

HTTP Request 


 

HTTP Request ( httpMethod ; url ; contents ; response {; headerNames ; headerValues}{; *} ) -> Function result 
Parameter Type   Description
httpMethod  Text in HTTP method for request
url  Text in URL to which to send the request
contents  Text, BLOB, Picture in Contents of request body
response  Text, BLOB, Picture in Result of request
headerNames  Text array in Header names of the request
in Returned header names
headerValues  Text array in Header values of the request
in Returned header values
Operator in If passed, connection is maintained (keep-alive)
If omitted, connection is closed automatically
Function result  Longint in HTTP status code

The HTTP Request command enables all types of HTTP requests to be sent to a specific URL and processes the HTTP server response.

Pass the HTTP method of the request in the httpMethod parameter. You can use one of the following constants, found in the HTTP Client theme:

Constant Type Value Comment
HTTP DELETE Method String DELETE See RFC 2616
HTTP GET Method String GET See RFC 2616. Same as using HTTP Get command.
HTTP HEAD Method String HEAD See RFC 2616
HTTP OPTIONS Method String OPTIONS See RFC 2616
HTTP POST Method String POST See RFC 2616
HTTP PUT Method String PUT See RFC 2616
HTTP TRACE Method String TRACE See RFC 2616

Pass the URL where you want the request sent in the url parameter. The syntax to use is:

http://[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}]

For example, you can pass the following strings:

    http://www.myserver.com
    http://www.myserver.com/path
    http://www.myserver.com/path?name="jones"
    https://www.myserver.com/login (*)
    http://123.45.67.89:8083
    http://john:smith@123.45.67.89:8083

(*) During HTTPS requests, authority of the certificate is not checked.

Pass the body of the request in the contents parameter. Data passed in this parameter depends on the HTTP method of the request.
You can send data of the Text, BLOB or Picture type. When the content-type is not specified, the following types are used:

  • for text: text/plain - UTF8
  • for BLOBs: application/byte-stream 
  • for pictures: known MIME type (best for Web).

After command execution, the response parameter receives the result of the request returned by the server. This result corresponds to the body of the response, with no headers.
You can pass different types of variables in response:

  • Text: When the result is expected to be text encoded in UTF16 or to be an XML tree reference..
  • BLOB: When the result is expected to be in binary
  • Picture: When the result is expected to be a picture.

If the result returned by the server does not correspond to the response variable type, it is left blank and the OK system variable is set to 0.

In headerNames and headerValues, you pass arrays containing the names and values of the request headers.
After this method is executed, these arrays contain the names and values of headers returned by the HTTP server. More specifically, this lets you manage cookies. 

The * parameter enables the keep-alive mechanism for the server connection. By default, if this parameter is omitted, keep-alive is not enabled.

The command returns a standard HTTP status code (200=OK and so on) as returned by the server. The list of HTTP status codes is provided in RFC 2616.
If you are unable to connect to the server for a reason related to the network (DNS Failed, Server not reachable...), the command returns 0 and an error is generated. You can intercept it using a method installed by the ON ERR CALL command.

Requesting for a record deletion from a remote database:

 C_TEXT($response)
 $body_t:="{record_id:25}"
 $httpStatus_l:=HTTP Request(HTTP DELETE Method;"database.example.com";$body_t;$response)

Note: You have to process the request appropriately on the remote server, HTTP Request only handles the request and the returned result.

Requesting to add a record to a remote database:

 C_TEXT($response)
 $body_t:="{fName:'john',fName:'Doe'}"
 $httpStatus_l:=HTTP Request(HTTP PUT Method;"database.example.com";$body_t;$response)

Note: You have to process the request appropriately on the remote server, HTTP Request only handles the request and the returned result.

 
PROPERTIES 

Product: 4D
Theme: HTTP Client
Number: 1158

 
INDEX

Alphabetical list of commands

 
HISTORY 

New
Created: 4D v13

 
SEE ALSO 

HTTP Get