2013-10-07 3 views
2

Powerbuilder를 사용하여 RESTFUL API에 액세스하고 있습니다. 나는 잘 작동하지만, API를 호출하고 요청 헤더를 포함하고 싶습니다. 이유는 API가 "application/xml"또는 "application/json"으로 설정할 수있는 "Content-Type"요청 헤더를 허용하기 때문입니다. 여기 Powerbuilder 요청 헤더가있는 GET 요청

내가 지금까지 무엇을했는지 있습니다 : 예상대로

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() 

은 위의 데이터를 반환합니다. 요청은 POST가 아닌 GET 요청이어야합니다.

어떻게 GetURL 요청에 요청 헤더를 추가합니까?

답변

1

inet 개체를 사용하지 않고 다른 것을 사용하는 것으로 끝 맺었습니다. 길고도 짧은 이야기, 나는 이제 더이 있습니다이

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) 

같은 OLEObject입니다을 사용하고 있습니다, 그러나 이것은이에 대한 답을 찾기 위해 노력하고 다른 사람을위한 좋은 시작이다. 당신이 헤더를 추가하려면

0

일부 요청 헤더를 지정할 수 있도록 inet 개체의 PostUrl() 메서드를 대신 사용해야합니다.

+0

API가 POST 요청이 아닌 GET 요청 만 허용한다는 점을 잊어 버렸습니다. 나는 이것을 반영하기 위해 나의 질문을 편집했다. – Melon

0

이 더 setRequestHeader를 사용할 수 있습니다

샘플

곱슬 곱슬 곱슬 곱슬 -X GET --header '수락 : 응용 프로그램/JSON --header'인증을 : asdfasdf를 '- 이

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) 
같은

: 'ssss는 apiKey에'-header