|
9 @" N4 ]& s1 Q% T 开发人员可以使用cURL来测试API接口,查看响应头和发出HTTP请求在本文中,我们将解释如何使用cURL发出POST请求HTTP POST方法用于将数据发送到远程服务器发出POST请求curl 发出POST请求的命令的一般形式如下:。 + O; _7 ^3 [& E/ w& w
curl -X POST [options] [URL]该-X选项指定与远程服务器通信时将使用哪种HTTP请求方法请求主体的类型由其Content-Type标头指定通常,POST请求是通过HTML表单发送的。 - j& w ~+ }1 c8 g
发送到表单的数据通常以multipart/form-data或application/x-www-form-urlencoded内容类型进行编码要创建POST请求,请使用-F选项,然后使用key=value配对。
: n1 w/ x, e Z( x1 z# T) A 下面的示例说明如何向具有“name”和“email”字段的表单发出POST请求:curl -X POST -F name=Jason -F email=jason@example.com https://xxxxxx.com/contact.php
% ?3 G" O5 j- e 使用该-F选项时,curl使用 Content-Type 为“multipart/form-data”发送数据发出POST请求的另一种方法是使用-d选项这导致curl使用application/x-www-form-urlencoded。
1 \3 Q5 D' V" }$ \ Q" Y Content-Type发送数据curl -X POST -d name=Jason -d email=jason@example.com https://xxxxxx.com/contact.php 。
4 z: C- T9 y" {( t. i5 j* F. X) H 如果-d多次使用该选项,则可以使用&符号合并数据:curl -X POST -d name=Jason&email=jason@example.com https://xxxxxx.com/contact.php
0 L' D0 \0 D/ `/ z& L, w4 g5 A 指定Content-Type要设置特定的标题或Content-Type,请使用-H选项以下命令将POST请求类型设置为,application/json并发送JSON对象:curl -X POST -H "Content-Type: application/json" -d {"name": "Jason", "email": "jason@example.com"} https://xxxx/contact 。 * l4 x5 ^3 l P0 t" g2 {
文件上传要使用curl来上传文件,只需在文件位置之前添加 at 符号该文件可以是任何支持的类型curl -X POST -F image=@/home/user/Pictures/wallpaper.jpg http://example.com/upload 。 / B% j: z* m- T/ Y7 {
设置代理1、curl命令设置http代理:将请求代理到 113.185.19.192 服务器的 80 端口# 指定http代理IP和端口, a) [ F$ H X/ A$ o/ a
curl -x 113.185.xx.xx:80 http://xxxxxx.com/test.php
! O/ L0 R3 f! t& P/ m. z curl --proxy 113.185.xx.xx:80 http://xxxxxx.com/test.php
- m( U+ @4 x3 z; c4 d0 R8 B2 j$ S H
#指定为http代理' D. d+ K0 t7 i0 I
curl -x http_proxy://113.185.xx.xx:80 http://xxxxxx.com/test.php
: I5 G5 w4 j5 i5 D( g: q" C: x& s. s# Y e& C& c( u; H# L
#指定为https代理
, W/ k; o6 V0 i, A, J curl -x HTTPS_PROXY://113.185.xx.xx:80 http://xxxxxx.com/test.php
7 U1 _# Z% Q" }& I
, G- t* _4 }, O/ Y; n3 x #指定代理用户名和密码,basic认证方式
* P; k% v" g& q. O7 K4 T, ^ curl -x root:123456@113.185.xxx.xx:80 http://xxxxxx.com/test.php
( Y* @4 S- V& x- n+ U2 p curl -x 113.185.xx.xx:80 -U root:123456 http://xxxxxx.com/test.php
" b: }: h, k1 e, J9 u curl -x 113.185.xx.xx:80 --proxy-user root:123456 http://xxxxxx.com/test.php9 g/ d) K- W9 u' i2 c- C
& h7 _8 a# o( K! m; t3 r$ D #指定代理用户名和密码,ntlm认证方式; q0 {$ p0 ?- f/ }5 O8 I" W7 C
curl -x 113.185.xx.xx:80 -U root:123456 --proxy-ntlm http://xxxxxx.com/test.php( R8 J9 z/ M" A2 N& ~2 l: f2 x! n
5 b4 ^2 x' x9 ]2 {4 t! d. w #指定代理协议、用户名和密码,basic认证方式" I) _% w3 o+ l! z+ }5 G# J
curl -x http_proxy://root:123456@113.185.xx.xx:80 http://xxxxxx.com/test.php $ w, C) x6 C9 `/ K
2、curl命令设置socks代理:#使用socks4代理,无需认证方式7 p- r, |: q% _- G8 @# M/ O
curl --socks4 122.192.xx.xx:7280 http://xxxxxx.com/test.php+ T4 e8 x+ L4 P% {. R4 Q
curl -x socks4://122.192.xx.xx:7280 http://xxxxxx.com/test.php
7 P1 v5 w( B3 M5 e. l' C4 a$ G. j) v
#使用socks4a代理,无需认证方式
3 L; N8 W* Z- |( m, P! p8 b curl --socks4a 122.192.xx.xx:7280 http://xxxxxx.com/test.php
; U; X$ p# R2 F! M% g5 @ curl -x socks4a://122.192.xx.xx:7280 http://xxxxxx.com/test.php
7 q( C' \8 b4 h- G2 Z+ O; `( d
#使用socks5代理,basic认证方式
( V% @ {2 s% {# c' M curl --socks5 122.192.xx.xx:7280 -U root:123456 http://xxxxxx.com/test.php
1 W, L+ q; y* ^+ W8 r( T curl -x socks5://root:123456@122.192.xx.xx:7280 http://xxxxxx.com/test.php
' x! B {/ g1 [% I$ G' W7 F; L0 t' V( L5 {( y9 R! E6 p+ b6 [8 Q
#使用socks5代理,basic认证方式,ntlm认证方式
6 F* c e+ h! m. @) k6 d curl -x socks5://root:123456@122.192.xx.xx:7280 --proxy-ntlm http://xxxxxx.com/test.php
$ o5 h2 [ E- Z5 d7 @9 T! l t' ? 进行接口测试curl -X POST -H "Content-Type: application/json" -d {"instid": "ivMaUO6fBSQU5TIgITqv1clITO2kMDpD", "status": "Y"} http://10.66.xx.xx:6819/uip/ctghttpServer/callback + z# y2 B, U2 }$ W* O8 o5 A* k
# p! h; Q" s" z1 |$ \/ E# K
* O- z l. u6 }: {8 ?9 j
5 V9 ^! H1 C+ n" p& h
) }1 S( E( C( V3 O( W/ Y9 j |