ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

linux用curl调用接口案例

linux用curl调用接口案例
1.get请求curlhttp://127.0.0.1:9088/api/data 携带tokencurl-H'Authorization:eyJhbGciOiJIU'http://127.0.0.1:9088/api/getTrend# 带查询参数的 GET 请求curl"http://127.0.0.1:9088/api/search?q=keyword&page=1"2.保存响应到文件curl-oresponse.json http://127.0.0.1:9088/api/data 说明:-o 指定文件名,适合下载 JSON 或文件。若需保留原始文件名可使用 -O。3.查看详细通信过程curl-vhttp://127.0.0.1:9088/api/data 说明:-v 会显示请求头、响应头、SSL 握手等详细信息,便于排查网络或协议问题。4.发送表单数据(application/x-www-form-urlencoded)curl-XPOST-d"username=admin&password=123456"http://127.0.0.1:9088/api/data5.发送 JSON 数据(application/json)curl-XPOST-H"Content-Type: application/json"-d'{"name": "John", "age": 30}'http://127.0.0.1:9088/api/data# 从文件读取 JSON 数据发送curl-XPOST-H"Content-Type: application/json"-d@request.json http://127.0.0.1:9088/api/users6.上传文件(multipart/form-data)curl-XPOST-F"file=@/path/to/local/file.txt"-F"description=Test Upload"http://127.0.0.1:9088/api/upload# 上传文件并附带其他表单字段curl-F"file=@/var/log/app/error.log"-F"env=production"-H"Authorization: Bearer YOUR_TOKEN"http://127.0.0.1:9088/api/upload# 上传多个文件curl-F"file1=@image.png"-F"file2=@document.pdf"http://127.0.0.1:9088/api/batch7.PUT 更新资源curl-XPUT-H"Content-Type: application/json"-d'{"status": "active"}'http://127.0.0.1:9088/api/users/101# 部分更新(PATCH)curl-XPATCH-H"Content-Type: application/json"-d'{"age":31}'http://127.0.0.1:9088/api/users/1238.DELETE 删除资源curl-XDELETE http://127.0.0.1:9088/api/users/101 带认证的删除curl-XDELETE-H"Authorization: Bearer YOUR_TOKEN"http://127.0.0.1:9088/api/users/1239.‌Basic 认证‌curl-uusername:password http://127.0.0.1:9088/api/protected 说明:-u 会自动将用户名密码进行 Base64 编码并添加到 Authorization 头中。10.Bearer Token 认证(OAuth2.0/JWT)curl-H"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5..."http://127.0.0.1:9088/api/secure-data11.跳过 SSL 证书验证curl-khttp://127.0.0.1:9088/api 说明:-k(或 --insecure)忽略证书错误,生产环境严禁使用,应使用--cacert指定可信 CA 证书。12.设置超时时间curl--connect-timeout5--max-time10http://127.0.0.1:9088/api/slow 说明:--connect-timeout 控制连接建立超时,--max-time 控制整个请求过程超时,防止脚本卡死。 ‌13.自定义 User-Agent‌curl-A"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"http://127.0.0.1:9088/api 说明:某些接口会拦截非浏览器请求,模拟 UA 可绕过简单限制。14.并发压力测试seq1100|xargs-n1-P10curl-s-o/dev/null-w"%{time_total}\n"http://127.0.0.1:9088/test 说明:利用xargs并行发起10个请求,共100次,输出每次请求的耗时,用于简易性能评估。15.常用参数-X--request指定 HTTP 方法(GET, POST, PUT, DELETE)-H--header添加请求头(如 Content-Type, Authorization)-d--data发送请求体数据(POST/PUT)-o--output将响应保存到指定文件-v--verbose显示详细通信日志-s--silent静默模式,不显示进度条和错误信息-L--location跟随重定向-k--insecure忽略 SSL 证书验证-u--user提供基本认证的用户名和密码-F--form模拟表单提交,支持文件上传16.文件下载接口# 下载文件并保留原文件名curl-Ohttp://127.0.0.1:9088/api/data.tar.gz# 下载文件并指定保存文件名curl-obackup.zip http://127.0.0.1:9088/api/data.zip# 断点续传curl-C--Ohttp://127.0.0.1:9088/api/largefile.iso# 限速下载(限制为 1M/s)curl-Ohttp://127.0.0.1:9088/api/data.tar.gz --limit-rate 1M17.Cookie 处理接口# 直接发送 Cookie 字符串curl-b"sessionid=abc123;user=john"http://127.0.0.1:9088/api/userinfo18.健康检查 / 监控接口# 获取 HTTP 状态码(输出 200 表示正常)curl-s-o/dev/null-w"%{http_code}"https://your-service.com/health# 获取状态码 + 响应时间curl-o/dev/null-s-w"%{http_code} %{time_total}\n"http://127.0.0.1:9088/api# 批量监控多个服务#!/bin/bashURLS=("https://example.com""http://127.0.0.1:9088/api/health")forurlin"${URLS[@]}";dostatus=$(curl-s-o/dev/null-w"%{http_code}"$url)["$status"-ne200]&&echo"服务中断:$url(状态码:$status)"done
返回列表