<cfhttp>

Lets you execute HTTP POST and GET operations on files.

Using cfhttp, you can execute standard GET operations and create a query object from a text file.

POST operations lets you upload MIME file types to a server, or post cookie, formfield, URL, file, or CGI variables directly to a specified server.

This tag may have a body.

This tag is also supported within <cfscript>

<cfhttp url=string encodeurl=boolean compression=string result=string addtoken=boolean port=number method=string username=string password=string preauth=boolean multipart=boolean multiparttype=string getasbinary=string name=string columns=string path=string file=string delimiter=string textqualifier=string resolveurl=boolean proxyserver=string proxyport=number proxyuser=string proxypassword=string useragent=string throwonerror=boolean redirect=boolean timeout=any charset=string firstrowasheaders=boolean authtype=string workstation=string domain=string clientcert=string clientcertpassword=string pooling=boolean cachedwithin=object autocert=boolean ><!--- body --->[</cfhttp>]
Attribute Description
url
string, required

Full URL of the host name or IP address of the server on which the file resides.

The URL must be an absolute URL, including the protocol (http or https) and hostname.

It may optionally contain a port number. Port numbers specified in the url attribute override the port attribute.

encodeurl
boolean, optional

if set to true (default value) URL encodes the value of the attribute "URL" if necessary (no double encoding is happening).

This setting has no influence on the values from httpparam type="url", for this use the attribute "encoded" from httpparam

Alias: encoded, encode

compression
string, optional

Informs the target webserver to disable compression for the response. Possible values are:

  • true (default): compression enabled
  • false: compression disabled
  • none (deprecated): use "false" instead
result
string, optional

return variable name, default "cfhttp"

addtoken
boolean, optional

if yes add urltoken as cookie

port
number, optional

The port number on the server from which the object is requested.

Default is 80.

When used with resolveURL, the URLs of retrieved documents that specify a port number are automatically resolved to preserve links in the retrieved document.

If a port number is specified in the url attribute, the port value overrides the value of the port attribute.

method
string, optional

Supported methods

  • GET (default)
  • POST
  • HEAD
  • PUT
  • DELETE
  • OPTIONS
  • TRACE
  • PATCH

Use GET to download a text or binary file or to create a query from the contents of a text file.

Use POST to send information to a server page or a CGI program for processing.

POST requires the use of a <cfhttpparam> tag.

username
string, optional

When required by a server, a valid username.

password
string, optional

When required by a server, a valid password.

preauth
boolean, optional

If set to true (default), Lucee sends the basic authentication (username password) always (Preemptive Basic Authentication)

If set to false the authentication is only send when the server ask for it (status code 401).

multipart
boolean, optional

Tells Lucee to send all data specified by cfhttpparam type="formField" tags as multipart form data, with a Content-Type of multipart/form-data.

getasbinary
string, optional
  • false: If CFML does not recognize the response body type as text, convert it to a CFML object.
  • auto: If CFML does not recognize the response body type as text, convert it to CFML Binary type data.
  • true: always convert the response body content into CFML Binary type data, even if CFML recognizes the response body type as text.
name
string, optional

The name to assign to a query if the a query is constructed from a file.

columns
string, optional

Specifies the column names for a query when creating a query as a result of a cfhttp GET.

path
string, optional

The path to the directory in which a file is to be stored.

If a path is not specified in a POST or GET operation, a variable is created (cfhttp.fileContent) that you can use to display the results of the POST operation in a cfoutput.

file
string, optional

The filename to be used for the file that is accessed.

For GET operations, defaults to the name specified in url.

Enter path information in the path attribute.

delimiter
string, optional

Used only when creating a query from an http request that returns data in a CSV format.

This value specifies the Field delimiter for the CSV data.

Only the first character is used.

Default is a comma.

textqualifier
string, optional

Required for creating a query.

Indicates the start and finish of a column.

Should be appropriately escaped when embedded in a column.

For example, if the qualifier is a double quotation mark, it should be escaped as """".

If there is no text qualifier in the file, specify it as " ".

Default is the double quotation mark (").

resolveurl
boolean, optional

Yes or No.

Default is No.

For GET and POST operations, if Yes, page reference returned into the fileContent internal variable has its internal URLs fully resolved, including port number, so that links remain intact.

proxyserver
string, optional

Host name or IP address of a proxy server.

proxyport
number, optional

The port number on the proxy server from which the object is requested.

Default is 80.

When used with resolveURL, the URLs of retrieved documents that specify a port number are automatically resolved to preserve links in the retrieved document.

proxyuser
string, optional

When required by a proxy server, a valid username.

proxypassword
string, optional

When required by a proxy server, a valid password.

useragent
string, optional

Use a custom User-Agent request header.

throwonerror
boolean, optional

Boolean indicating whether to throw an exception that can be caught by using the <cftry> and <cfcatch> tags.

Errors include

  • a connection/response timeout
  • a http response status code which isn't between 200 and 299
  • a connection failure
  • unable to resolve hostname (i.e. DNS)
  • TLS/SSL problems

The default is YES.

redirect
boolean, optional

Boolean indicating whether to redirect execution or stop execution.

The default is Yes.

If set to No and throwOnError = "yes", execution stops if cfhttp fails, and the status code and associated error message are returned in the variable cfhttp.statuscode.

To see where execution would have been redirected, use the variable cfhttp.responseHeader[LOCATION]. The key LOCATION identifies the path of redirection.

Lucee will follow up to five redirections on a request. If this limit is exceeded, Lucee behaves as if redirect = "no".

timeout
any, optional

A value, in seconds.

When a URL timeout is specified in the browser, the timeout attribute setting takes precedence over the Lucee Administrator timeout.

The server then uses the lesser of the URL timeout and the timeout passed in the timeout attribute, so that the request always times out before or at the same time as the page times out.

If there is no URL timeout specified, Lucee takes the lesser of the Lucee Administrator timeout and the timeout passed in the timeout attribute.

If there is no timeout set on the URL in the browser, no timeout set in the Lucee Administrator, and no timeout set with the timeout attribute, Lucee waits indefinitely for the cfhttp request to process.

charset
string, optional

Sets the charset for the call.

firstrowasheaders
boolean, optional

sets if first row of csv is file

authtype
string, optional

Authentication type for a request with username and password, valid values are "BASIC" (default) and "NTLM"

workstation
string, optional

The workstation the authentication request is originating from.

Essentially, the computer name for this machine. This attribute is only used when authentication type is "NTLM"

domain
string, optional

The domain to authenticate within. This attribute is only used when authentication type is "NTLM"

clientcert
string, optional

The full path to a PKCS12 format file that contains the client certificate for the request.

Introduced: 5.0.0.0

clientcertpassword
string, optional

Password used to decrypt the client certificate.

Introduced: 5.0.0.0

pooling
boolean, optional

Flag allowing to disable connection reuse on one off requests.

Introduced: 6.0.0.96

cachedwithin
object, optional

Supported values are:

  • String "request" (If original content was created within the current request, cached content data is used.)
  • a timespan (created with function CreateTimeSpan)

To use cached data, the tag must be called with the exact same arguments.

Introduced: 5.0.0.0

autocert
boolean, optional

When set to true, this attribute enables the automatic installation of SSL certificates for HTTPS connections, ensuring the request can proceed without SSL certificate errors. This is particularly useful for environments where certificates may not be pre-installed or are dynamically updated.

Introduced: 6.1.0.132

Unimplemented Attribute(s)

Attribute Description
multiparttype
string, optional

This attribute has been deprecated, use instead the attribute "multipart".

* deprecated *

Usage Notes

For multipart with quoted boundary response, filecontent will be an array, see LDEV-3545

Examples

Tags

<cfhttp url="https://www.google.com" method="get" result="myresult">
<cfdump var="#myresult#">

<cfhttp url="https://www.google.com" method="get" result="myresult"> <cfhttpparam type="url" name="q" value="Lucee"> </cfhttp> <cfdump var="#myresult#">

Script

http url="https://www.google.com" method="get" result="myresult";
dump(myresult);

//You can also pass parameters in script format http url="https://www.google.com/search" method="get" result="myresult"{ httpparam type="url" name="q" value="Lucee"; } dump(myresult);

See also