找回密码
 加入怎通
查看: 278|回复: 1

curl常用总结_curl怎么使用

[复制链接]
我来看看 发表于 2023-03-31 11:28:16 | 显示全部楼层 |阅读模式
9 Q9 a, G) R4 b5 U1 D) {$ Y

作者:Yungacurl 常用总结curl是一个利用URL语法在命令行模式下工作的文件传输工具,是我们经常用到的工具,用得最多的便是用来测试http接口在这里对部分请求的使用方式做一个总结,熟练使用curl后,在不能使用Postman等图形工具的时候,也可以方便的调试自己的接口。

" S% W, i1 v8 a% v

Hello curlcurl http://test.com/这便是发起一个最简单http请求,不带任何请求参数GETcurl http://test.com/test?param1=a¶ms2=b。

3 V7 T: h+ K( S. }, w, w6 t

url传参,多个参数使用 & 连接自定义headercurl http://test.com/test -H TEST_HEADER1: hello -H TEST_HEADER2: world使用 -H

. W! B1 z' }/ e7 `4 l

来传递http请求的header,格式:key:value,如果需要多个header,使用多个 -H 即可POSTcurl可以以5种方式设置POST的内容:--data 通用设置--data-ascii 将对数据进行ASCII编码。

( c/ ~: `' B7 I( A( S

--data-binary 直接将传递的数据转为二进制--data-raw 可以上传任意格式的文本,可以上传text、json、xml、html等--data-urlencode 将参数进行url编码例:

; @+ D! `& `" r5 s* a

## application/x-www-form-urlencoded 以键值对方式POST传递参数,curl默认方式 + y$ C1 O3 J9 r& n, R" K curl http://test.com/test -d param1=hello¶m2=curl 0 @7 K! E% W4 J) v, z) ]- h6 P ) Y- B& J" o$ s: u4 e! {- O' \ ## 传递JSON字符串 9 H2 r/ c1 p- [5 I& S* V" B curl http://test.com/test --data-raw my name is yunga -H Content-Type: application/json 5 E, K8 K* `# y$ F( ]+ u' w) a& e( q9 p/ {+ v& s$ @ ## 数据需要进行url编码7 c/ |. U5 ?- K4 i curl http://test.com/test --data-urlencode key=a+a+a+

" q4 k! H; s& C4 }4 R

根据需要设置不同POST内容传递方式,设置对应的header设置Methodcurl -X PUT http://test.com/test -d param1=hello¶m2=curl可以使用这种方式设置需要的请求方式:GET、POST、PUT、DELETE、OPTION。

) [& Q- l0 |0 D: @5 j3 O! H- Y

上传文件curl -X POST http://test.com/test -F file=@hello.txt -F "key=what"使用这种方式,Content-Type会被设置为multipart/form-data,通过表单的形式提交文件,需要注意的是文件路径前使用

/ O0 D) r0 h2 W: v1 E( ^

@ 来表示这是一个文件路径,否则会作为普通字符串传递,传递文件的同时我们可以传递其他的参数,使用多个 -F 即可忽略https证书验证curl -k -X POST http://test.com/test -F file=@hello.txt -F "key=what"。

6 I* ?9 s$ F6 }: F* J

使用 -k 选项,使用SSL时允许不安全的服务器连接设置http协议版本使用以下选项来设置请求时http协议版本版本--http0.9--http1.0--http1.1--http2例:curl -X DELETE http://test.com/test -d key=a+a+a+ --http1.0。

7 L; L! J) @% T, p) r

设置cookie## 直接设置cookie+ Y: ]' H4 P& x# ?! S- ], Z/ p curl http://test.com/test --cookie "user=admin;pass=admin"; x }0 e+ p$ _; S! M( B " e- G. [1 J% b7 m( V ## 保存cookie到文件 $ I( r1 _" ~! R% `: ~ curl -b cookie.txt http://test.com/test- z( S/ l- C+ i/ K" N : U" Y0 j" x4 P* t+ E ## 使用cookie文件7 \# \* n' d% k curl -c @cookie.txt http://test.com/test

% f* d2 b- v6 L' \0 n. {9 m! z

打印响应和请求头很多时候我们需要查看响应和请求的头,只需要带上 -v 选项即可例:curl http://test.com/test -d key=a+a+a+ --http1.0 --cookie user=admin;password=root -v " ?1 \" n, n3 @% P) d! d# Z' M1 Q `` ( W' i/ q8 d0 \0 w; \ K5 B) q$ E2 a1 e: `0 b* e- f9 X# \ 打印大概如下: W; ~: T4 D9 i7 J, k5 u ```txt . ~- P, Q8 ` } * Trying ::1...$ ?1 N' n! V9 \ * TCP_NODELAY set# F+ x3 }; [- b) t * Connected to localhost (::1) port 10086 (#0) W8 U Z; J3 i' U o > POST /test?hello=aaa HTTP/1.0/ F' `9 T: y, m$ G* N; @ > Host: localhost:10086 . Q% B; p4 s$ p v: s0 A > User-Agent: curl/7.64.1* e; o4 ]" s+ m: k% D# } > Accept: */*! n0 M, R2 e% \7 d > Cookie: user=admin;password=root 3 c5 ~4 {; K( E) A ]' W+ m0 u > Content-Length: 10+ E" z8 Z* n* M+ J4 e7 ~ v > Content-Type: application/x-www-form-urlencoded+ K# m$ H, F/ f >% A$ g9 ^+ Z1 Z; x, J) | * upload completely sent off: 10 out of 10 bytes2 V, k5 i% p* l( U. i7 \0 x * HTTP 1.0, assume close after body( Y/ s$ }' {( i- D& ^ < HTTP/1.0 200 OK , s& E2 c# Y4 V. T/ ]: C7 ^ < Date: Tue, 30 Jun 2020 12:12:48 GMT% T0 I$ r# C, q- E1 p, t( R6 n8 J < Content-Length: 7% p' Z) P! g9 p* B" ` < Content-Type: text/plain; charset=utf-8$ j @" ?4 H1 C& U1 f) ` < ; N" ?6 z1 w, g0 ~9 j * Closing connection 0; }5 r7 T) [3 t success。

" Q U' E* g/ H5 U6 R& }4 U . T1 H$ g9 {: \: V 1 n: {/ [1 U: S- z. q 8 h% s' v0 H5 u. y; q8 y R8 i6 T: p
回复

使用道具 举报

别致滴小伙 发表于 2026-03-04 17:04:50 | 显示全部楼层
蹲了这么久,终于看到有价值的讨论,支持一下!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入怎通

本版积分规则

QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

GMT+8, 2026-3-16 01:32 , Processed in 0.062740 second(s), 23 queries , Gzip On.

免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表