对外部 API 执行发布请求时遇到问题
Posted
技术标签:
【中文标题】对外部 API 执行发布请求时遇到问题【英文标题】:getting problem performing a post request to an external API 【发布时间】:2019-11-19 19:32:06 【问题描述】:我正在使用 axios 对外部 api 执行 get 和 post 请求, 我终于成功实现了获取请求(ssl证书的问题,我通过添加这个来避免它: httpsAgent: 新的 https.Agent(rejectUnauthorized: false ),
现在我想发布 api,
为了让请求在邮递员中工作,我输入了 标头内容类型:应用程序/json 在正文中:
like here
当尝试使用 google chrome 扩展时,为了使其正常工作,我在标题中没有放入任何内容,但在参数中,我选择了 customer : application/json 并放入了这个 而不是默认选择 x-www -form-urlencoded;charset=UTF-8
chrome extention
在我的 javascript 应用程序中我尝试了这个
var url = https://10.11.31.100:9440/api/nutanix/v3/images/list
;
axios(
method:'post',
httpsAgent: new https.Agent( rejectUnauthorized: false ),
url,
auth:
username: '******',
password: '********'
,
headers:
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest'
,
params: ,
data:
)
.then(function (response)
res.send(JSON.stringify(response.data));
console.log(response);
)
.catch(function (error)
console.log(error);
);
我遇到了这个问题:
TypeError : UTF-8 不是函数
【问题讨论】:
TypeError : UTF-8 is not a function
是由.catch()
打印的? X-Requested-With': 'XMLHttpRequest
标头有什么意义?这段代码对我来说似乎没问题。
是的,错误是由 catch 承诺处理的
'X-Requested-With': 'XMLHttpRequest' 没有意义,我刚试过
你不觉得axios支持node.js post请求有问题吗?
我认为问题不在于 axios 本身。似乎在某处您正试图使用类似函数的字符串:const randomName = 'foobar'
=> randomName()
【参考方案1】:
特别是关于 Nutanix v3 REST API - 这可能是因为上面的 POST 请求没有适当的 JSON 有效负载,即“数据”参数为空。
发送 Nutanix v3 API POST 请求时,特别是“列出”实体,您需要指定列出的实体的“种类”。在您的示例中,下面的 JSON 有效负载将起作用。
"kind":"image"
请看这里:https://nutanix.dev/reference/prism_central/v3/api/images/postimageslist
HTH。 :)
【讨论】:
以上是关于对外部 API 执行发布请求时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 云功能,具有对外部 api 的基本身份验证的获取请求
对外部 API 的 HTTP 请求适用于 .NET,但不适用于 React(CORS 问题)