httpUpload

Version 24.2.9039


httpUpload

Version 24.2.9039


Issue an HTTP POST request using multipart/form-data to upload files to an API endpoint compliant with RFC 1867.

Required Parameters

  • url: The URL to which the POST request is issued.
  • file:*: The path to a file to upload. The format of this attribute must include a value after the colon and a value parameter (see the example below).

Optional Parameters

  • name:*: Used to override the name field of the form data set by the file attribute.
  • filename:*: Used to override the filename field of the form data set by the file attribute.
  • timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default is 60.
  • proxy_server: The IP address or host name of the proxy server used for the request.
  • proxy_auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. Allowed values are TRUE or FALSE. The default is FALSE.
  • proxy_port: The port number of the proxy server.
  • proxy_user: The user Id used to authenticate with the proxy server.
  • proxy_password: The password used to authenticate with the proxy server.
  • proxy_authscheme: The authentication scheme of the proxy server. Allowed values are BASIC, DIGEST, PROPRIETARY, NONE, and NTLM. The default is BASIC.
  • proxy_authtoken: The proxy authentication token.
  • proxy_ssltype: The SSL/TLS type of the proxy server. Allowed values are AUTO, ALWAYS, NEVER, and TUNNEL. The default is AUTO.
  • firewall_server: The firewall IP address or host name.
  • firewall_port: The firewall port number.
  • firewall_user: The user Id used to authenticate with the firewall.
  • firewall_password: The password used to authenticate with the firewall.
  • firewall_type: The firewall type. Allowed values are NONE, TUNNEL, SOCKS4, and SOCKS5. The default is NONE.
  • internalconfig#: Sets an internal configuration setting.
  • charset: The charset of the exchanged/transferred data. The default is UTF-8.
  • httpversion: Version of the HTTP protocol to use. Allowed values are 1.0 or 1.1. The default is 1.1.
  • cookie:*: Any cookies to add to the request.
  • followredirects: Whether or not to follow HTTP redirects. Allowed values are TRUE or FALSE. The default is TRUE.
  • sslcert: The SSL/TLS certificate to be accepted from the server. This can take the form of a full PEM certificate, the path to a file containing the certificate, the public key, the MD5 thumbprint, or the SHA-1 thumbprint. Any certificate other than the one specified is rejected. If unspecified, this value defaults to TRUSTED, which means only certificates trusted by the system are accepted. If set to *, any certificate is accepted.
  • sslclientcert: The name of the certificate store for the client certificate.
  • sslclientcerttype: The store type of the client certificate. Allowed values are USER, MACHINE, PFXFILE, PFXBLOB, JKSFILE, JKSBLOB, PEMKEY\_FILE, PEMKEY\_BLOB, PUBLIC\_KEY\_FILE, PUBLIC\_KEY\_BLOB, SSHPUBLIC\_KEY\_BLOB, P7BFILE, P7BBLOB, SSHPUBLIC\_KEY\_FILE, PPKFILE, PPKBLOB, XMLFILE, and XMLBLOB.
  • sslclientcertpassword: The password of the client certificate.
  • sslclientcertsubject: The subject of the client certificate. Using an asterisk finds the first certificate in the store.
  • user: The username to authenticate with if the authscheme parameter is set to something other than NONE.
  • password: The password to authenticate with if the authscheme parameter is set to something other than NONE.
  • authscheme: The authorization mechanism to use. Only relevant if user and password are provided. Allowed values are BASIC, DIGEST, NONE, and NTLM. The default is BASIC.
  • version: The OAuth version. Use OAuth to authorize the request. Allowed values are Disabled, 1.0, and 2.0. The default is Disabled.
  • token: The request token for OAuth.
  • token_secret: The request token secret. Applicable for OAuth 1.0 only.
  • sign_method: The signature method used to calculate the signature for OAuth 1.0. Allowed values are HMAC-SHA1 and PLAINTEXT. The default is HMAC-SHA1.
  • client_id: The client Id. Applicable for OAuth 1.0 only.
  • client_secret: The client secret. Applicable for OAuth 1.0 only.
  • header:name#: The name for each custom header to pass with the request.
  • header:value#: The value for each custom header to pass with the request.
  • form:*: Form input variable data to include in the POST.

Output Attributes

  • ssl:issuer: The issuer of the SSL/TLS certificate.
  • ssl:subject: The subject of the SSL/TLS certificate.
  • http:statuscode: The HTTP status code returned from the request.
  • http:content: The content of the HTTP response.
  • cookie:*: The cookies returned with the response.
  • http:allcookies: All of the cookies from the response, returned as a single string.
  • header:*: The headers returned with the response.

Example

<!-- Setting the url and upload file for the request -->
<arc:set attr="http.URL" value="https://postman-echo.com/post" />
<arc:set attr="http.file:myfile" value="[FilePath]" />
<!-- Overriding the name and filename attribute on the request -->
<arc:set attr="http.name:myfile" value="myNewFile" />
<arc:set attr="http.filename:myfile" value="customFilename.txt" />
<!-- Setting additional form data on the request -->
<arc:set attr="http.form:hello" value="world" />
<arc:set attr="http.form:foo" value="bar" />
<!-- Adding an HTTP header to the request -->
<arc:set attr="http.header:name#1" value="mySpecialHeader" />
<arc:set attr="http.header:value#1"value="Foo" />
<!-- Setting the credentials via basic authentication -->
<arc:set attr="http.user" value="postman" />
<arc:set attr="http.password" value="password" />
<!-- Optional logging parameter. Useful when troubleshooting a request -->
<arc:set attr="http.logfile" value="/tmp/httpLog.txt" />
<arc:set attr="http.verbosity" value="3" />

<!-- Passing in the http input item to the call and setting the data of the output file to be the HTTP response -->
<arc:call op="httpUpload" in="http" out="response">
  <arc:set attr="output.data" value="[response.http:content]" />
</arc:call>

<!-- Setting the output filename and pushing the file out -->
<arc:set attr="output.filename" value="httpResponseContent.txt" />
<arc:push item="output" />