问题描述
我需要使用参数和json负载将帖子发送到url。 例如,在邮递员中,我这样做了:
post http://address.com?key=As8941a1891389123812312381923
并将正文以RAW格式放入json。在标头上,我只放了一个Content-type application / json,它工作正常。
在openge中,我尝试了以下方法:
oJson = new JsonObject;
oJson:add('...blablabla',payloadData).
assign cURL = 'http://address.com?key=As8941a1891389123812312381923'.
oHttpClient = ClientBuilder:Build():Client.
Assign oRequest = RequestBuilder:Post(cURL,oJson)
:Content-type('application/json')
:AcceptJson()
:Request.
Assign oResponse = oHttpClient:Execute(oRequest).
但是,我从服务器收到403错误。 看来问题出在我尝试同时发送带有URL和json有效内容的?key = xxxx参数时,还是我在cUrl格式中犯了一个错误。
在我没有JSON负载的情况下(并且可以正常工作)的其他帖子中,当有一些参数时,通常我必须分别发送参数,如下所示:
ASSIGN id = trim("db=" + trim(db) + "&lg=" + trim(lg) + "&sh=" + trim(sh) +
"&sxml=" + trim(argumentos))
htmlRequest = trim(id).
oRequestBody = new String(htmlRequest).
oRequest = RequestBuilder:Post(trim(cURL),oRequestBody)
:AcceptHtml()
:Request.
oResponse = ClientBuilder:Build():Client:Execute(oRequest).
如何使用openge RequestBuilder同时发送参数“?key = ....”和json负载?
有人可以帮忙吗?
预先感谢
解决方法
我已经检查了您的请求-是否带有JSON实体-在两种情况下,查询字符串都是POST的一部分。
我现在正在使用OpenEdge 12.2,结果是:
function question1(numberArray) {
for (let i = 0; i < numberArray.length; i = i + 1) {
number = numberArray[i];
return number;
}
}
function testQuestion1() {
let testArray = [10,45,33,67,433,33];
let answer1 = question1(testArray);
if(question1(testArray) == 433) {
console.log("Question 1:Found the largest");
} else {
console.log("Question1: For array ",testArray," returned ",answer1,"Which is not the largest");
}
let testArray2 = [10,-900,3000,22,33];
let answer2 = question1(testArray);
if(question1(testArray2) == 3000) {
console.log("Question 1: Found the largest");
} else {
console.log("Question 1: For array ",testArray2,answer2,"Which is not the largest");
}
}
这是我的测试例程:
POST /?key=As8941a1891389123812312381923 HTTP/1.1
Host: address.com
Content-Type: application/json
Content-Length: 16
Accept: application/json
{"blablabla":42}