AddField (HttpRequest subroutine): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m ((start) matching syntax terms to syntax box (will need further review when syntax box fixed), edits, tags and links.)
mNo edit summary
Line 7: Line 7:
<table class="syntaxTable">
<table class="syntaxTable">
<tr><th>httpRequest</th>
<tr><th>httpRequest</th>
<td>A previously defined and instantiated <var>httpRequest</var> object.
<td>A previously defined and instantiated <var>HttpRequest</var> object.
</td></tr>
</td></tr>
<tr><th>fieldName</th>
<tr><th>fieldName</th>
Line 19: Line 19:
<td>A string that identifies the file to be uploaded. The default is no file specification, that is, a non-file data Post. This is an optional parameter.
<td>A string that identifies the file to be uploaded. The default is no file specification, that is, a non-file data Post. This is an optional parameter.
</td></tr>
</td></tr>
<tr><th>xlatflag</th>
<tr><th>translate</th>
<td>This optional parameter controls whether the <var class="term">fieldValue</var> content is processed with EBCDIC-to-ASCII translation. If <var class="term">xlatflag</var> is not specified, the default is <var>True</var> (use EBCDIC-to-ASCII translation). If the value is <var>False</var>, no translation occurs.
<td>This optional parameter controls whether the <var class="term">fieldValue</var> content is processed with EBCDIC-to-ASCII translation. If <var class="term">translate</var> is not specified, the default is <var>True</var> (use EBCDIC-to-ASCII translation). If the value is <var>False</var>, no translation occurs.


</td></tr></table>
</td></tr></table>
Line 26: Line 26:
<ul>
<ul>
<li>See <var>[[MultiPartFormEncoding (HttpRequest property)|MultiPartFormEncoding]]</var> for information about using <var>AddField</var> for a form used to Post file data.
<li>See <var>[[MultiPartFormEncoding (HttpRequest property)|MultiPartFormEncoding]]</var> for information about using <var>AddField</var> for a form used to Post file data.
<li><var>AddField</var> is designed for requests that have the <code>application/x-www-form-urlencoded</code> or <code>multipart/form-data</code> content types.  It is an error to use <var>AddField</var> in a request that has, say, a "text/xml" content type.
<li><var>AddField</var> is designed for requests that have the <code>application/x-www-form-urlencoded</code> or <code>multipart/form-data</code> content types.  It is an error to use <var>AddField</var> in a request that has, say, a <code>text/xml</code> content type.
<li>If form fields are defined with <var>AddField</var>, no explicit content type is set with <var>[[AddHeader (HttpRequest subroutine)|AddHeader]]</var>, and multipart form encoding is ''not'' enabled with
<li>If form fields are defined with <var>AddField</var>, no explicit content type is set with <var>[[AddHeader (HttpRequest subroutine)|AddHeader]]</var>, and multipart form encoding is ''not'' enabled with
<var>[[MultiPartFormEncoding (HttpRequest property)|MultiPartFormEncoding]]</var>. the <var class="product">HTTP Helper</var> automatically sends the following request
<var>MultiPartFormEncoding (HttpRequest property)|MultiPartFormEncoding</var>. The <var class="product">HTTP Helper</var> automatically sends the following request
header on Post calls:
header on <var>Post</var> calls:
<p class="code"> content-type: application/x-www-form-urlencoded
<p class="code"> content-type: application/x-www-form-urlencoded
</p>
</p>
Line 35: Line 35:


==Example==
==Example==
<ol>
The following <var class="product">User Language</var> prompts for a procedure name, stores the procedure in a <var>Stringlist</var>, and uploads the procedure using multipart form encoding.
<li>The following <var class="product">User Language</var> prompts for a procedure name, stores the procedure in a <var>Stringlist</var>, and uploads the procedure using multipart form encoding.
<p class="code">begin
<p class="code">begin
   %request is object httpRequest
   %request is object httpRequest
Line 64: Line 63:
   print %response:[[Content_(HttpResponse_function)|content]]
   print %response:[[Content_(HttpResponse_function)|content]]
end
end
</p></ol>
</p>


==See also==
==See also==

Revision as of 14:47, 21 June 2011

Add a form field to the request (HttpRequest class)

The AddField method lets you add a form field name and value pair to the HTTP request that is to be sent to the HTTP server.

Syntax

httpRequest:AddField( fieldName, fieldValue, [file], [translate])

Syntax terms

httpRequest A previously defined and instantiated HttpRequest object.
fieldName A string expression that names an HTTP form field. Field names are case insensitive.

Passing multiple occurrences is allowed; if a same-named field is already present, an additional instance is added.

fieldValue A Longstring or a Stringlist object expression that results in a value for the field. If it is a Stringlist, a line-end sequence is appended to each Stringlist item as it is added to the Post data. The LineEnd property sets which of three line-end sequence options is appended.
file A string that identifies the file to be uploaded. The default is no file specification, that is, a non-file data Post. This is an optional parameter.
translate This optional parameter controls whether the fieldValue content is processed with EBCDIC-to-ASCII translation. If translate is not specified, the default is True (use EBCDIC-to-ASCII translation). If the value is False, no translation occurs.

Usage notes

  • See MultiPartFormEncoding for information about using AddField for a form used to Post file data.
  • AddField is designed for requests that have the application/x-www-form-urlencoded or multipart/form-data content types. It is an error to use AddField in a request that has, say, a text/xml content type.
  • If form fields are defined with AddField, no explicit content type is set with AddHeader, and multipart form encoding is not enabled with MultiPartFormEncoding (HttpRequest property)|MultiPartFormEncoding. The HTTP Helper automatically sends the following request header on Post calls:

    content-type: application/x-www-form-urlencoded

Example

The following User Language prompts for a procedure name, stores the procedure in a Stringlist, and uploads the procedure using multipart form encoding.

begin %request is object httpRequest %response is object httpResponse %upfile is object stringlist %procname is string len 255 %rc is fixed %procname = $read('Enter proc name please') %rc = $procopn( %procname ) if ( %rc ) then print 'could not open the proc, dude.' stop end if %upfile = new %upfile:appendOpenProcedure %rc = $proccls %upfile:print %request = new %request:URL = 'whatever' %request:multiPartFormEncoding = true %request:lineEnd = CR %request:addField('filename',%upfile,%procname) %response = %request:post( 'CSOCK' ) print %response:statusline print %response:content end

See also