我想使用请求发送数据和标头(我希望通过curl实现以下内容),下面是请求发生的函数foobar()
。由于某种原因,下面是错误的,但没有错误消息或警告。有什么想法吗?
请求使用= https://www.npmjs.com/package/request#custom-http-headers
function foobar(a, i, callback){
var requestOptions = {
url: 'http://someurl/endpoint',
headers: {
'X-ELS-Authentication':'FOO',
'Content-Type':'application/json',
'Accept':'application/json'
},
data: {
'xqueryx': "<foo><bar:word path=\""+a+"\">"+i+"</bar:word></foo>'
'start': 0,
'count': 100,
'fields': "*"
}
};
function makeRequest(error, response, body) {
if (!error && response.statusCode == 200) {
callback(JSON.parse(body));
}
}
request(requestOptions, makeRequest);
}
更新:
这个卷曲等价物确实有效:
curl_render = 'curl -H "'+curl_request.headers[0]+'" '+
' -H "'+curl_request.headers[1]+'" '+
' -H "'+curl_request.headers[2]+'" '+
" --data '"+JSON.stringify(curl_request.data)+"' "+
curl_request.url;
exec(curl_render, function (error, stdout, stderr) {
cb(stdout);
});
答案 0 :(得分:1)
始终在回调中使用第一个参数作为错误。
如果请求没有错误且状态代码为200
。您的回调函数代码有效,如果有错误或状态代码不是200,该怎么办。您必须处理所有情况。
function makeRequest(error, response, body) {
if (!error && response.statusCode == 200) {
callback(null,JSON.parse(body));
}
else{
callback(error);
}
}