////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
:documentationPath: /workflow/actions/
:language: en_US
:description: The HTTP action retrieves a file from a Web server using the HTTP protocol.

= HTTP

== Description

The `HTTP` action retrieves a file from a Web server using the HTTP protocol.

This action could be used to access data on partner Web sites.

For example, the daily data export or daily list of customers is located at a specified Web site.

Also, SaaS providers may give you a URL to locate a report.

You can call that URL to retrieve an Excel file or zip file that contains the data.

Salesforce requires that you use SOAP APIs to retrieve data.

If HTTP traffic is too heavy in your corporate environment, you may choose to use a proxy server with HTTP authentication.

== Options

=== General Tab

[options="header", width="90%, cols="1,3"]
|===
|Option|Description
|Action name|The name of the workflow action.
|URL|The HTTP URL of the file to retrieve, or the directory name to store an uploaded file to.
|Run for every result row?|Check this if you want to run this action for every row that was generated by a previous pipeline.
Use the "Copy rows to result".
If selected, an HTTP request will be made for each result.
Otherwise, the file is only retrieved once
|Input field which contains URL|If the "Run for every result row?" option is selected, the field specified here will determine the file URL for each row
|Input field which contains upload file name|If the "Run for every result row?" option is selected, the field specified here will determine the local file that will be uploaded to the URL associated with the "Input field which contains URL" field.
|Input field which contains destination file name|If the "Run for every result row?" option is selected, the field specified here will determine the local file where the result downloaded from the URL associated with the "Input field which contains URL" field.
2+|Authentication
|Username|If the site requires authentication, use this username to log in
|Password|If a username is defined, this is the password for it
|Proxy server for upload|The URL of a proxy server that you want to connect to the HTTP URL through
|Proxy port|If a proxy server is defined, this is the port number it listens on
|Ignore proxy for hosts|A regular expression list of exceptions for proxy redirection.
This may be useful when working on an intranet or VPN
2+|Upload file
|Upload file|If you are uploading a file, this will be its name on the remote server
2+|Webserver reply
|Target file|If you are downloading a file, this its name on your local filesystem
|Append to specified target file?|If selected, and if the target file already exists, Hop will append all new data to the end of the file
|Add date and time to file name?|If selected, the date and time of the HTTP request (in yyyMMdd_HHmmss format) will be added to the target filename
|Target file extension|If the previous option is selected, this field specifies the extension (letters after the dot) of the target filename
|Add filename to result filename|Any files that are copied will appear as a result from this action; shows a list of files that were copied in this action.
|===

=== Headers Tab

[options="header", width="90%", cols="1,3"]
|===
|Option|Description
|#|Order that the header should be processed
|Name|The name of this HTTP header
|Value|The actual header value to pass
|===