Hello,
I am trying to use a post call with http in ds2 to send a json to an rest-server.
My problem is there is no exampel how to do, all examplel using the much easier get version. I have tried to find out on my own, but can not solve the problem. I have use the process with the standard proc http and resue the settings. Something does not work.
I have no clue-
/Anders
This is the error I got;
ERROR: Error reported by DS2 package d2http:
ERROR: Failed to determine encoding from content type.
ERROR: Error reported by DS2 package d2http:
ERROR: SETREQUESTBODYASSTRING failed for HTTP POST method with URL:
http://api.scb.se/OV0104/v1/doris/sv/ssd/BE/BE0101/BE0101A/BefolkningNy
This is my program.
proc ds2;
data test / overwrite=yes;
dcl varchar(65000) response;
method init();
dcl package http scbQuery();
dcl integer rc sc;
dcl varchar(65000) jsonQuestion;
jsonQuestion='{
"query": [
{
"code": "ContentsCode",
"selection": {
"filter": "item",
"values": [
"BE0101N1"
]
}
},
{
"code": "Tid",
"selection": {
"filter": "item",
"values": [
"2010",
"2011"
]
}
}
],
"response": {
"format": "json"
}
}';
scbQuery.createPostMethod('http://api.scb.se/OV0104/v1/doris/sv/ssd/BE/BE0101/BE0101A/BefolkningNy');
scbQuery.setRequestBodyAsString(jsonQuestion);
scbQuery.setRequestContentType('application/x-www-form-urlencoded; charset=ISO-8859-1');
scbQuery.executeMethod();
scbQuery.getResponseBodyAsString(response, rc);
sc=scbQuery.getStatusCode();
put 'RC=' rc;
put 'SC= ' sc;
put 'Response= ' response;
end;
enddata;
run;
quit;
... View more