AddField (HttpRequest subroutine): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
m (1 revision)
Line 15: Line 15:
</td></tr>
</td></tr>
<tr><th>fieldvalue</th>
<tr><th>fieldvalue</th>
<td>A Longstring or a <var>Stringlist</var> object expression that results in a value for the field. If it is a <var>Stringlist</var>, a line-end sequence is appended to each <var>Stringlist</var> item as it is added to the Post data. The LineEnd (HTTPRequest property) sets which of three line-end sequence options is appended.
<td>A <var>Longstring</var> or a <var>Stringlist</var> object expression that results in a value for the field. If it is a <var>Stringlist</var>, a line-end sequence is appended to each <var>Stringlist</var> item as it is added to the Post data. The LineEnd (HTTPRequest property) sets which of three line-end sequence options is appended.
</td></tr>
</td></tr>
<tr><th>file</th>
<tr><th>file</th>
Line 31: Line 31:
<code>application/x-www-form-urlencoded</code> or <code>multipart/form-data</code>
<code>application/x-www-form-urlencoded</code> or <code>multipart/form-data</code>
content types.
content types.
It is an error to use AddField in a request that has, say, a &amp;amp;amp;ldquo;text/xml&amp;amp;amp;rdquo;
It is an error to use AddField in a request that has, say, a &amp;amp;amp;amp;ldquo;text/xml&amp;amp;amp;amp;rdquo;
content type.
content type.
<li>If form fields are defined with AddField, no explicit content type is set
<li>If form fields are defined with AddField, no explicit content type is set

Revision as of 22:50, 15 June 2011

Template:HTTPRequest:AddField subtitle

This 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

Template:HTTPRequest:AddField syntax

Syntax terms

%httpreq 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 (HTTPRequest 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.
xlatflag This optional parameter controls whether the fieldvalue content gets EBCDIC-to-ASCII translation. If xlatflag is not specified, the default is True (use EBCDIC-to-ASCII translation). If set to False, no translation occurs.

Usage notes

  • See MultipartFormEncoding (HTTPRequest property) 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 &amp;amp;amp;ldquo;text/xml&amp;amp;amp;rdquo; 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. the HTTP Helper automatically sends the following request header on Post calls:

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

  • For information about Stringlist processing, see the Janus SOAP Reference Manual.

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

Template:HTTPRequest:AddField footer