【问题标题】:Need help converting cURL command to Javascipt需要帮助将 cURL 命令转换为 Javascript
【发布时间】:2020-07-19 20:52:36
【问题描述】:

我正在尝试从 Edamam API 获取食谱营养信息。在 API 文档中,cURL 命令是:

curl -d @recipe.json -H "Content-Type: application/json" "https://api.edamam.com/api/nutrition-details?app_id=${YOUR_APP_ID}&app_key=${YOUR_APP_KEY}"

我正在使用 Axios 和 Javascript 尝试通过 Post 命令访问 API:

import axios from "axios";

var postData = './recipe.json'

let axiosConfig = {
  headers: {
      'Content-Type': 'application/json;charset=UTF-8',}
};

axios.post('https://api.edamam.com/api/nutrition-details?app_id=XXXXXXXX&app_key=XXXXXXXXXXXXXXXXXXXXX', postData, axiosConfig)
.then((res) => {
  console.log("RESPONSE RECEIVED: ", res);
})
.catch((err) => {
  console.log("AXIOS ERROR: ", err);
})

我收到 400 错误回复。任何关于我需要做些什么来完成这项工作的想法将不胜感激。

【问题讨论】:

  • 我对 cURL 不太熟悉,但我认为命令是 GET 并且您正在尝试在 JS 中发送 POST 请求。

标签: javascript curl axios


【解决方案1】:

在您的 cURL 中,-d @recipe.json 选项正在发送文件 recipe.json 的内容

但是,在您的 代码 postData = './recipe.json' 中,您只是传递名称而不是读取它。

首先需要从recipe.json中读取数据,然后通过request发送出去。

【讨论】:

    【解决方案2】:

    postData 需要是 JSON 字符串。

    您似乎正在向它传递一个包含文件名的字符串。

    您可能希望读取 './recipe.json'axios.get() 以从中获取数据。

    【讨论】:

    • postData 也可以是标准的 JS 对象,因此您也可以使用 import postDate from './recipe.json' 导入 JSON。
    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 2013-06-28
    • 1970-01-01
    • 2017-06-22
    • 2014-12-04
    • 2013-08-06
    • 2018-11-24
    • 2019-12-23
    相关资源
    最近更新 更多