带有请求标头的Powerbuilder GET请求

时间:2013-10-07 01:07:15

标签: powerbuilder

我正在使用Powerbuilder访问RESTFUL API。我有它工作得很好但是,我想调用API并包含请求标头。我需要这个的原因是因为API接受“Content-Type”请求标头,可以将其设置为“application / xml”或“application / json”。

这是我到目前为止所做的:

inet iinet_base
n_ir ir

GetContextService( "Internet", iinet_base )
CREATE n_ir
li_rc = iinet_base.GetURL( "http://api.com/apicall", ir )
ls_result = ir.of_getResultData_String()

以上将按预期返回数据。请求必须是GET请求,而不是POST。

如何向GetURL请求添加请求标头?

3 个答案:

答案 0 :(得分:1)

结束不使用inet对象而是使用其他东西。长话短说,我现在正在使用像这样的OleObject

lole_Send.connectToNewObject("Msxml2.DOMDocument.6.0")
lole_SrvHTTP.connectToNewObject("MSXML2.ServerXMLHTTP.6.0")
lole_SrvHTTP.Open("GET", "http://api.com/apicall", FALSE)
lole_SrvHTTP.SetRequestHeader( "Content-Type", "application/json")
lole_SrvHTTP.Send(lole_Send)
ls_message = string(lole_SrvHTTP.Status)
ls_response = string(lole_SrvHTTP.ResponseText)

还有更多内容,但对于试图找到答案的其他人来说,这是一个良好的开端。

答案 1 :(得分:0)

您应该使用PostUrl()对象的inet方法来指定一些请求标头。

答案 2 :(得分:0)

如果您想添加标题,可以使用更多SetRequestHeader

样本卷曲

  

curl -X GET --header'Accept:application / json --header'授权:asdfasdf' - header'APIKEY:ssss'

像这样

lole_Send.connectToNewObject("Msxml2.DOMDocument.6.0")
lole_SrvHTTP.connectToNewObject("MSXML2.ServerXMLHTTP.6.0") 
lole_SrvHTTP.Open("GET", "http://api.com/apicall", FALSE)

lole_SrvHTTP.SetRequestHeader( "Content-Type", "application/json")
lole_SrvHTTP.SetRequestHeader( "Authorization", "asdfasdf' )*")
lole_SrvHTTP.SetRequestHeader( "APIKEY", "ssss")

lole_SrvHTTP.Send(lole_Send)
ls_message = string(lole_SrvHTTP.Status)
ls_response = string(lole_SrvHTTP.ResponseText)