我正在尝试在Node-RED中执行一个简单的http get请求。根据在线文档,我必须在函数中传递参数作为http请求节点的输入。我的功能看起来像这样;
msg.url = "https://api.socialstudio.radian6.com/v3/posts"
msg.method = "GET"
msg.headers = {'access_token': access_token}
msg.payload = {
'topics': 234243,
'limit': 100,
}
return msg;
然而,当我查看服务器响应时,我收到错误:
["{"error":{"message":"Missing topics parameter.","statusCode":400,"errorCode":"MC-Unknown","requestId":"RnY9E0pbcU1lkiaf"},"meta":null}"][1]
我尝试了其他api,但我还没有能够传递有效载荷参数。
我做错了什么?
答案 0 :(得分:3)
如果要为GET请求传递查询参数,则应在http request node
中设置基本URL并使用mustache语法包含它们:
https://api.socialstudio.radian6.com/v3/posts?topics={topics},limit={limts}
并将函数节点更改为:
msg.method = "GET"
msg.headers = {'access_token': access_token}
msg.topics = 234243;
msg.limit = 100;
return msg;
答案 1 :(得分:2)
825 // For a node dst, 'ref_recvs' remembers the recvs introduced by a ref
826 // edge to dst. 'ref_control_inputs' remembers the inputs by a non-ref
827 // edge to dst. We will add a control edge for every pair in
828 // (ref_recvs x ref_control_inputs).
829 std::vector<NodeDef*> ref_recvs;
830 std::vector<string> ref_control_inputs;
包含请求的正文,但看起来您尝试查询的服务器要求将数据作为查询字符串传递。
试试这个:
msg.payload
(并删除msg.url = "https://api.socialstudio.radian6.com/v3/posts?topics=234243&limit=100"
)