如何将 CURL POST 请求转换为 NodeRED
How to translate a CURL POST request into NodeRED
我在将以下 CURL 请求转换为我的 NodeRED 流程时遇到问题:
curl -X POST -u "apikey:my_api_key" -F "features=objects" -F "collection_ids=my_collection_ids" -F "image_url=my_image_URL" "API_url"
我创建了一个函数节点和一个 HTTP 请求节点(方法设置为 POST,URL 设置为 "API_url")。
在函数节点中我写了如下代码:
msg.headers = {}
msg.headers = {
'content-type': 'application/x-www-form-urlencoded',
'apikey': 'my_api_key'
};
msg.payload = { }
msg.payload = {
'features': 'objects',
'collection_ids': my_collection_ids',
'image_url': my_image_URL'
};
return msg;
当我触发请求时,出现此错误:
"{"code":401, "error": "Unauthorized"}"
我在 header 中传递 apikey 是否有误?有什么建议么?
非常感谢
问题出在您的身份验证 header。
当您将 -u username:pass
传递给 curl 时,它会在请求中生成适当的 Authorization
header,如下所示:
Authorization: Basic dXNlcm5hbWU6cGFzcw==
其中 username:pass
部分使用 base64 编码。
因此,对于您的情况,您应该执行以下操作以正确设置 header:
msg.headers = {
'content-type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic '+(new Buffer('apikey:my_api_key')).toString('base64')
};
我在将以下 CURL 请求转换为我的 NodeRED 流程时遇到问题:
curl -X POST -u "apikey:my_api_key" -F "features=objects" -F "collection_ids=my_collection_ids" -F "image_url=my_image_URL" "API_url"
我创建了一个函数节点和一个 HTTP 请求节点(方法设置为 POST,URL 设置为 "API_url")。
在函数节点中我写了如下代码:
msg.headers = {}
msg.headers = {
'content-type': 'application/x-www-form-urlencoded',
'apikey': 'my_api_key'
};
msg.payload = { }
msg.payload = {
'features': 'objects',
'collection_ids': my_collection_ids',
'image_url': my_image_URL'
};
return msg;
当我触发请求时,出现此错误:
"{"code":401, "error": "Unauthorized"}"
我在 header 中传递 apikey 是否有误?有什么建议么? 非常感谢
问题出在您的身份验证 header。
当您将 -u username:pass
传递给 curl 时,它会在请求中生成适当的 Authorization
header,如下所示:
Authorization: Basic dXNlcm5hbWU6cGFzcw==
其中 username:pass
部分使用 base64 编码。
因此,对于您的情况,您应该执行以下操作以正确设置 header:
msg.headers = {
'content-type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic '+(new Buffer('apikey:my_api_key')).toString('base64')
};