【发布时间】:2015-07-20 16:33:52
【问题描述】:
我遇到了通过 cURL 进行复杂 http 请求的问题。 我正在使用 NODEjs 构建 REST API,使用 Express 路由器和 Multer 中间件来处理多个主体数据和文件。
我的端点路由 127.0.0.1/api/postData 期望: 带有字段的 json 数据,其中一个是 json 对象数组(我有嵌套的猫鼬模式)和 2 个命名图像(png/jpg)。
我需要通过 cURL 发送具有以下 5 对象数据结构的 Post 请求:
name String
description String
usersArray Array of json objects like: [{"id": "123"}, {"id": "456}]
imgIcon Png/Image providing /path/to/imageIcon.png
imgHeader Png/Image providing /path/to/imageHeader.png
我已经阅读了很多关于 stackoverflow 的帖子,但所有这些帖子都是针对特定单一问题的答案,一个是关于 curl 帖子图像的帖子,另一个是关于 cURL 帖子数组的帖子,但并非全部。
我已经尝试过 POSTMAN 和 DHC(谷歌浏览器)等 REST API 测试工具,除了 arraysArray 字段外,一切都很好
我使用了以下字段:
usersArray[0] {"id": "123"}
usersArray[1] {"id": "456"}
但是验证没有通过,因为 json 对象值被解析不正确。
所以我决定将所有内容都放在 cURL 脚本中。
我尝试用以下方式编写我的 cURL 请求:
#!/bin/bash
curl -H 'Content-Type: application/json'
-H 'Accept: application/json' -X POST
-F "name=Foo Name Test"
--data '[{"id": "a667cc8f-42cf-438a-b9d8-7515438a9ac1"}, {"id": "7c7960fb-eeb9-4cbf-9838-bcb6bc9a3878"}]'
-F "description=Super Bar"
-F "imgIcon=@/home/username/Pictures/imgIcon.png"
-F "imgHeader=@/home/username/Pictures/imgHeader.png" http://127.0.0.1:7777/api/postData
当我在 bash 中运行我的 cUrl 脚本时 ./postData
我得到了这个: $ 警告:您只能选择一个 HTTP 请求!
您可以帮助:
1) 知道如何在 cURL 中编写如此复杂的 HTTP REST 请求
2) 或者建议使用工具(如 DHC、POSTMAN)来解决这个复杂的 http 请求。
3) 或知道如何借助 request.js 节点 http 请求库编写此请求。
提前感谢大家的所有答案、想法和想法!
问候,JJ
【问题讨论】:
标签: arrays json image rest curl