发送 JSON
Coddy 使用终端进行网络通信 课程的第 35 课,共 47 课。
如今,大多数 API 需要 JSON,而不是表单编码。需要改动两处,而忘记第二处是这一部分最常见的错误。
curl -s -H 'Content-Type: application/json' \
-d '{"name":"ada"}' http://127.0.0.1:9125/users首先,请求正文要改为 JSON。其次,你必须通过 Content-Type 标头声明这一点,否则 curl 仍会将请求正文标记为表单数据。然后,服务器会尝试将 JSON 解析为 key=value 键值对,并拒绝该请求,通常会返回 400。
所以,当 API 提示你的 JSON 无效,而你看起来觉得它完全有效时,先检查请求头,再检查 JSON。
也要注意引号。JSON 中有很多双引号,所以用单引号括住整个请求体,shell 就不会改动它。
挑战
专家发送真实的 JSON,并证明它被正确标记。
- 在端口 9125 上启动捕获监听器
- 将请求正文
{"name":"ada"}以 JSON 格式 POST 到/users - 打印
req.txt中的 Content-Type 行
预期输出:
Content-Type: application/json亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器