5月29日 23:47
如何用 cURL 发送 GET 和 POST 请求?
GET 用来从服务端取数据,参数通常放在 URL 查询串里;POST 用来提交数据,数据通常放在请求体里。用 cURL 时,GET 最常见的是直接请求 URL,POST 常用 -d 或 --data 传请求体。注意:curl -d 默认会发 POST,不一定非要写 -X POST。
追问
GET 和 POST 最大区别是什么?
GET 的参数暴露在 URL 中,适合查询;POST 的数据放在 body 中,适合提交表单、JSON 或文件。GET 通常可缓存、幂等;POST 通常不缓存,也不保证幂等。
-d 和 -G 一起用是什么意思?
-d 默认把数据放进请求体并触发 POST;加 -G 后,cURL 会把这些参数拼到 URL 后面,仍然发 GET。
实际调接口时最常用哪些参数?
常用 -H 加请求头,-d 传 JSON 或表单,-i 看响应头和响应体,-I 只看响应头,-v 排查连接、TLS、重定向等问题。
发送 JSON 时容易踩什么坑?
最常见是忘了加 Content-Type: application/json,或者 JSON 字符串引号没转义好。另一个坑是误以为 -X POST 必须写,其实有 -d 时 cURL 已经会用 POST。
写段代码
bash# GET:查询用户 curl "https://api.example.com/users?page=1&limit=10" # GET:带请求头 curl -H "Authorization: Bearer token" \ https://api.example.com/users # POST:提交 JSON curl https://api.example.com/users \ -H "Content-Type: application/json" \ -d '{"name":"张三","email":"zhangsan@example.com"}' # POST:上传文件 curl https://api.example.com/upload \ -F "file=@/path/to/file.pdf"