将 Paypal cURL 命令转换为 Axios 请求
Posted
技术标签:
【中文标题】将 Paypal cURL 命令转换为 Axios 请求【英文标题】:Convert Paypal cURL command to Axios request 【发布时间】:2021-04-28 17:14:35 【问题描述】:按照 Paypal cURL 命令可以正常工作,但不幸的是我无法转换为 axios 代码以使其正常工作。 Paypal Documentation 没有表单数据示例,但如果您需要可选的 message_document 文件,它允许这样做。
curl --request POST \
--url https://api-m.sandbox.paypal.com/v1/customer/disputes/12345/send-message` \
--header 'authorization: Bearer --token--' \
--header 'content-type: multipart/form-data' \
-F "input=\"message\":\"sample message\";type=application/json" \
-F "message_document=@sample.pdf"
我尝试了那个 Node.js 代码,即使没有发送文件但没有成功:
const FormData = require('form-data');
const form = new FormData();
form.append('input', JSON.stringify( message: 'sample message' ), contentType: 'application/json' );
const result = await axios(
url: 'https://api-m.sandbox.paypal.com/v1/customer/disputes/12345/send-message',
method: 'post',
data: form,
headers:
'Content-Type': 'multipart/form-data',
Authorization: 'Bearer --token--'
).catch(err =>
throw new Error(err);
);
我看不出问题出在哪里。请赐教。提前致谢。
【问题讨论】:
【参考方案1】:我没想到,但它通过缺少边界信息来解决。这些可以使用:
const result = await axios(
url: 'https://api-m.sandbox.paypal.com/v1/customer/disputes/12345/send-message',
method: 'post',
data: form,
headers:
'Content-Type': `multipart/form-data; boundary=$form._boundary`,
Authorization: 'Bearer --token--'
)
或
const result = await axios(
url: 'https://api-m.sandbox.paypal.com/v1/customer/disputes/12345/send-message',
method: 'post',
data: form,
headers:
Authorization: 'Bearer --token--',
...form.getHeaders()
)
【讨论】:
以上是关于将 Paypal cURL 命令转换为 Axios 请求的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 PayPal 的 api 并需要帮助将 Curl 转换为 PHP
如何将此 cURL 代码转换为 PHP(PayPal API)