Toolkit 7.3 APIs Banner [skip navigation]
Office of Information & Technology (OIT) Banner

$$GETURL^XTHC10(): Return URL Data Using HTTP

Reference Type: Supported, Category: Toolkit—HTTP Client Helper, Integration Agreement: 5553

Description

The $$GETURL^XTHC10 extrinsic function is a Hypertext Transfer Protocol (HTTP)/1.1 client that can request a Web page from another system and pass the returned data to the calling routine.

It can make both GET and POST requests.

It is the main API and returns in xt8rdat the returned data from the website.

NOTE: XTHC* routines are part of the HTTP Client Helper application for developers.

NOTE: This API was released with Kernel Toolkit patch XT*7.3*123. NOTE: This API is IPv6 compliant as of Kernel Toolkit patch XT*7.3*138.

Format

  $$GETURL^XTHC10(url[,xt8flg][,xt8rdat][,.xt8rhdr][,xt8sdat][,.xt8shdr])

Input Parameters

url:

(required) Universal Resource Locator (URL): http://host:port/path

xt8flg:

(optional) Timeout and flags to control processing. If the value of this parameter starts from a number then this number is used as a value of the timeout (in seconds). Otherwise, the default value of 5 seconds is used.

xt8sdat:

(optional) Closed root of a variable containing the body of the request message. Data should be formatted as described in the xtT8rdat parameter.

NOTE: If this parameter is defined (i.e., not empty) and the referenced array contains data, then the POST request is generated. Otherwise, the GET request is sent.

.xt8shdr:

(optional) Reference to a local variable containing header values, which will be added to the request.For example:

XT8SHDR("CONTENT-TYPE")="text/html"
.xt8meth:

(optional) Flag to indicate the request method:

  • GET-Default if xt8sdat contains no data.
  • POST-Default if xt8sdat contains data.
  • Head
  • Put
  • Options
  • Delete
  • Trace

Input/Output Parameters

xt8rdat:

(optional) Closed root of the variable where the message body is returned. Data is stored in consecutive nodes. If a line is longer than 245 characters, only 245 characters are stored in the corresponding node. After that, overflow sub-nodes are created. For example:

@XT8DATA@(1)="<html>"
@XT8DATA@(2)="<head><Title>VistA</title></head>"
@XT8DATA@(3)="<body>"
@XT8DATA@(4)="<p>"
@XT8DATA@(5)="Beginning of a very long line"
@XT8DATA@(5,1)="Continuation #1 of the long line"
@XT8DATA@(5,2)="Continuation #2 of the long line"
@XT8DATA@(5,...)=...
@XT8DATA@(6)="</p>"
.xt8rhdr:

(optional) Reference to a local variable where the parsed headers are returned. Header names are converted to uppercase; the values are left "as is". The root node contains the status line. For example:

XT8HDR="HTTP/1.0 200 OK"
XT8HDR("CACHE-CONTROL")="private"
XT8HDR("CONNECTION")="Keep-Alive"
XT8HDR("CONTENT-LENGTH")="2690"
XT8HDR("CONTENT-TYPE")="text/html"
XT8HDR("DATE")="Fri, 26 Sep 2003 16:04:10 GMT"
XT8HDR("SERVER")="GWS/2.1"

Output

Returns:

Returns

Success: HTTP_Status_Code^Description Common HTTP status codes returned:

The most common HTTP status codes include:

Status Code Description
200 OK.
301 Moved Permanently.

400 Bad Request
401 Unauthorized
404 Not Found
407 Proxy authentication Required
408 Request Time-out
500 Internal Server Error
505 HTTP Version not supported

Fail: -1^Error Descriptor Additional error information can be found in the VistA error trap or ^XTER in programmer mode.

REF: For more details, see http://www.faqs.org/rfcs/rfc1945.html

 


VA (Internet) / VA(Intranet) / OI / PD / Site Map / Terms of Use / VA Privacy Policy / Accessibility

Reviewed/Updated: June 6, 2018

If you have questions, need more information, or are having accessibility problems with this website, please contact us by E-Mail: Webmasters, Phone: 510-768-6800, or FAX: 510-768-6850.