CFHTTPPARAM |
Description
Allowed inside cfhttp tag bodies only. Required for cfhttp POST operations. Optional for all others. Specifies parameters to build an HTTP request.
Category
Forms tags, Internet Protocol tags
Syntax
    <cfhttpparam
       type = "transaction type"
       name = "data name"
       value = "data value"
       file = "filename"
       encoded = "Yes or No"
       mimeType = "MIME type designator">
See also
cfhttp, GetHttpRequestData, cfftp, cfldap, cfmail, cfmailparam, cfpop
History
ColdFusion MX 6.1: Added the header and body types. Added the encoded, and mimeType attributes. Changed HTTP method behavior: all HTTP methods can have httpparam tags. Changed the name attribute requirements: it is not required for all types.
Usage
Specifies header or body data to send in the HTTP request. The type attribute identifies the information that the parameter specifies. A cfhttp tag can have multiple cfhttpparam tags, subject to the following limitations: An XML type attribute cannot be used with additional XML type attributes, or with body, file, or formField type attributes. A body type attribute cannot be used with additional body type attributes, or with XML, file, or formField type attributes. The XML and body type attributes cannot be used with the cfhttp tag TRACE method. The file type attribute is only meaningful with the cfhttp tag POST and PUT methods. The formField type attribute is only meaningful with the cfhttp tag POST and GET methods.
If you send an HTTP request to a ColdFusion page, all HTTP headers, not just those sent using the CGI type, are available as CGI scope variables, However, any custom variables (such as "myVar") do not appear in a dump of the CGI scope.
When you send a file using the type="file" attribute, the file content is sent in the body of a multipart/form-data request. If you send the file to a ColdFusion page, the Form scope of the receiving page contains an entry with the name you specified in the cfhttpparam tag name attribute as the key. The value of this variable is the path to a temporary file containing the file that you sent. If you also send Form field data, the location of the filename in the form.fieldnames key list depends on the position of the cfhttpparam tag with the file relative to the cfhttp tags with the form data.
URL-encoding preserves special characters (such as the ampersand) when they are passed to the server. For more information, see the function URLEncodedFormat.
Example
    <!--- this example consists of two CFML pages.
          The first page posts to the second --->

    <!--- The first, posting page.
          This page posts variables to another page and displays the body
          of the response from the second page.
          Change the URL and port as necessary for your environment --->

    <cfhttp
          method="post"
          url="http://127.0.0.1/tests/http/cfhttpparamexample.cfm"
          port="8500"
          throwonerror="Yes">
       <cfhttpparam name="form_test" type="FormField" value="This is a form
    variable">
       <cfhttpparam name="url_test" type="URL" value="This is a URL variable">
       <cfhttpparam name="cgi_test" type="CGI" value="This is a CGI variable">
       <cfhttpparam name="cookie_test" type="Cookie" value="This is a cookie">
    </cfhttp>

    <!--- output the results returned by the posted-to page --->
    <cfoutput>
       #cfhttp.fileContent#
    </cfoutput>

    <!--- This is cfhttpparamexample.cfm page that receives and processes the Post
    request. It's response body is the generated HTML output. --->

    <h3>Output the passed variables</h3>
    <cfoutput>
       Form variable: #form.form_test#
       <br>URL variable: #URL.url_test#
       <br>Cookie variable: #Cookie.cookie_test#
       <br>CGI variable: #CGI.cgi_test#<br>
       <br>Note that the CGI variable is URL encoded.
    </cfoutput>

TYPE |
| Required
Information type: Header: The parameter specifies an HTTP header. ColdFusion does not URL encode the header. CGI: Specifies an HTTP header. ColdFusion URL encodes the header by default. Body: Specifies the body of the HTTP request. ColdFusion does not URL encode the body contents. XML: Identifies the request as having a content-type of text/xml. Specifies that the value attribute contains the body of the HTTP request. Used to send XML to the destination URL. ColdFusion does not URL encode the XML data. File: Tells ColdFusion to send the contents of the specified file. ColdFusion does not URL encode the file contents URL: Specifies a URL query string name-value pair to append to the cfhttp url attribute. ColdFusion URL encodes the query string. FormField: Specifies a form field to send. ColdFusion URL encodes the Form field by default. Cookie: Specifies a cookie to send as an HTTP header. ColdFusion URL encodes the cookie.

NAME |
| Required. Optional for Body and XML types
Variable name for data that is passed. Ignored for Body and XML types. For File type, specifies the filename to send in the request.

VALUE |
| Required Optional (and ignored) for File type
Value of the data that is sent. Ignored for File type. The value must contain string data or data that ColdFusion can convert to a string for all type attributes except Body. Body types can have string or binary values.

FILE |
| Required only if type="File"
Applies to File type; ignored for all other types. The absolute path to the file that is sent in the request body.

ENCODED |
| Optional
Default value: "Yes" Applies to FormField and CGI types; ignored for all other types. Specifies whether to URLEncode the form field or header.

MIMETYPE |
| Optional
Applies to File type; invalid for all other types. Specifies the MIME media type of the file contents. The content type can include an identifier for the character encoding of the file; for example, text/html; charset=ISO-8859-1 indicates that the file is HTML text in the ISO Latin-1 character encoding.