How to Set Query params while calling an API
I need to post data to an api which expects certain data in body, query, path and header. I am using Post method of %Net.HttpRequest class. I was able to set body and header values, but couldn't figure out how to set the query and path variables. Appreciate any assistance! Is it the SetParam method()?
Discussion (2)0
Comments
Did you try httprequest.SetParam("Query",<query value>) and httprequest.SetParam("Path",<path value>)?
Set ht = ##class(%Net.HttpRequest).%New()
Set ht.Server = "server"
Do ht.SetParam("param1", "true")
Do ht.SetHeader("myheader", "headervalue")
Set tSC = ht.Get("/api/get", 1)
Look at the second parameter in the call of Get method, it is a test flag, helps to understand how your request will actually go
GET /api/get?param1=true HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;) Host: server Accept-Encoding: gzip myheader: headervalue
Look at this code, it will do the same
Set ht = ##class(%Net.HttpRequest).%New()
Set ht.Server = "server"
Do ht.SetParam("param1", "true")
Do ht.SetHeader("myheader", "headervalue")
Set ht.Location = "/api/get"
Set tSC = ht.Get(, 1)
Or even this code
Set ht = ##class(%Net.HttpRequest).%New()
Do ht.SetHeader("myheader", "headervalue")
Set tSC = ht.Get("http://server/api/get?param1=true", 1)