0
的身体我想POST
到我的服务器上的API端点。我知道我的终点工作,因为如果我使用高级REST客户端,我可以打它,并得到一个JSON响应预期。这个问题似乎是没有数据在我的请求主体发送,尽管调用request.write(postData)
其中包含一个键,值对。如果没有在正文中发送这些数据,我的服务器将按照预期返回401错误,但没有此信息。打印出来的POST服务器端的内容是空的,但我无能,为什么它是空的。HTTPS请求不发布REST请求
var postData = querystring.stringify({
"access_token" : accessToken,
"id": applianceId
});
var serverError = function (e) {
log("Error", e.message);
context.fail(generateControlError(requestName, "DEPENDENT_SERVICE_UNAVAILABLE", "Unable to connect to server"));
};
var callback = function(response) {
var str = "";
response.on("data", function(chunk) {
str += chunk.toString("utf-8");
});
response.on("end", function() {
result = generateResult(CONTROL, requestName.replace("Request", "Confirmation"), messageId);
context.succeed(result);
});
response.on("error", serverError);
};
var options = {
hostname: REMOTE_CLOUD_HOSTNAME,
port: 443,
path: REMOTE_CLOUD_BASE_PATH + "/" + endpoint,
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
};
var request = https.request(options, callback);
request.on("error", serverError);
//This doesn't seem to write anything since if I print out the POST
//data server-side it's empty; however, if I print out the value of
//postData here, it looks as expected: 'access_token=xxxxx'
request.write(postData);
request.end();
感谢您的答复的人。不幸的是,问题不会切换到JSON来解决,因为我有它在ARC当前内容类型的工作。它在AWS上运行,所以我怀疑是否有服务器问题。由于某种原因,发布的数据似乎并未在我的实施中发送。 – roundtheworld
我已经测试您的实现。它正在工作。所以它与你发布的代码无关 – Aminadav