Issue with parsing a form variable of a HTTP POST request
Hi everyone,
I am currently sending an HTTP POST request to an
Here the request URL: http://10.41.11.210:57772/csp/healthshare/dce/POSTServiceClass.cls?rpyTo...
From the documentation I have read (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=EHTTP_inbound) I get that the form variables are written into the request body in case of a POST. I have also implemented the OnInint() is this way to enable the form variables parsing:
Method OnInit() As %Status { Set ..Adapter.ParseBodyFormVars=1 Quit 1 }
The OnProcessImput of the service is implemented in this way:
Class POSTServiceClass Extends (EnsLib.HTTP.Service, HS.Util.Trace.Helper) { Parameter CONTENTTYPE = "text/xml"; Property TargetProcess As %String(MAXLEN = 250) [ Required ]; . Property isServerFault As %Boolean; Method OnInit() As %Status { Set ..Adapter.ParseBodyFormVars=1 Quit 1 } Method OnProcessInput(pInput As %GlobalCharacterStream, Output pOutput As %GlobalCharacterStream, ByRef pHint As %String) As %Status { set ..isServerFault = $$$YES // Server Fault by default #dim token As %String if '$isObject(pInput) || (pInput.Size = 0) { set ..isServerFault = $$$NO quit $$$ERROR($$$GeneralError, "Null request") } #dim inMsg As HS.Message.XMLMessage = ##class(HS.Message.XMLMessage).%New() set inMsg.ContentStream=pInput #dim outMsg As HS.Message.XMLMessage = "" #dim sc As %Status = ..SendRequestSync(..TargetProcess, inMsg, .outMsg) if $$$ISERR(sc) quit sc // check if we have a good response if '$isObject(outMsg) || 'outMsg.%Extends("HS.Message.XMLMessage") quit $$$ERROR($$$GeneralError, "Null or incorrect response") set pOutput = outMsg.ContentStream quit $$$OK }
I was expecting to find my form variable (rpyToken) into the contentStream of the isMsg XMLMessage but there isn't.
Can someone explain me what is my mistake?
Thank you in advance.
Hi-
Even in a http POST, url variables are found in %request.Data. The content stream will contain the body of your post.