对外部 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 问题)

如何使用 Angular2 向外部 API 发出 POST 请求?

创建供外部使用的 API

在拉动外部api用于rails后端时遇到了麻烦。

对我的 Amazon Spectrum 表进行分区时遇到问题