5月29日 22:48
cURL -X 参数什么作用?PUT/DELETE/PATCH 怎么用?
-X 指定 HTTP 方法,默认 GET。-X POST/PUT/DELETE/PATCH 分别发送对应请求。POST 提交数据用 -d;PUT 全量更新用 -X PUT -d data;DELETE 删资源用 -X DELETE;PATCH 局部更新用 -X PATCH -d partial_data。注意:-d 默认就是 POST,-X POST 可省略。但 PUT/DELETE/PATCH 必须显式指定 -X。
追问
-X POST 和 -d 有什么区别?
-d 发送 POST body 数据,自动设 Content-Type: application/x-www-form-urlencoded。只有 -d 没有 -X 时 cURL 自动用 POST。-X POST 只改方法不改 body,需配合 -d。
怎么发 JSON 格式的请求?
加 -H "Content-Type: application/json" -d '{"key":"value"}'。不加 Content-Type 服务器可能按 form-data 解析。单引号包裹 JSON 防 shell 解析双引号。
PUT 和 PATCH 实际区别?
PUT 全量替换——传整个对象,没传的字段被清空。PATCH 局部更新——只传要改的字段。API 设计规范遵循这个语义。
DELETE 请求能带 body 吗?
技术上可以但 RFC 不推荐。需要带条件的删除用 URL 参数:DELETE /api/users/123?force=true。
幂等性是什么?
多次调用结果一样。GET/PUT/DELETE 幂等,POST/PATCH 非幂等。PUT 幂等因为每次全量覆盖到同一状态。