|
: T6 H& u3 p- T% x3 w5 [- H0 C 开发人员可以使用cURL来测试API接口,查看响应头和发出HTTP请求在本文中,我们将解释如何使用cURL发出POST请求HTTP POST方法用于将数据发送到远程服务器发出POST请求curl 发出POST请求的命令的一般形式如下:。
}0 \5 A) C0 n4 R: X curl -X POST [options] [URL]该-X选项指定与远程服务器通信时将使用哪种HTTP请求方法请求主体的类型由其Content-Type标头指定通常,POST请求是通过HTML表单发送的。
* R- U* ?8 N+ S8 V. } 发送到表单的数据通常以multipart/form-data或application/x-www-form-urlencoded内容类型进行编码要创建POST请求,请使用-F选项,然后使用key=value配对。
4 I, \3 B. R q8 F8 }- A+ g 下面的示例说明如何向具有“name”和“email”字段的表单发出POST请求:curl -X POST -F name=Jason -F email=jason@example.com https://xxxxxx.com/contact.php
1 f5 O- {1 N1 x$ f- E/ |% s 使用该-F选项时,curl使用 Content-Type 为“multipart/form-data”发送数据发出POST请求的另一种方法是使用-d选项这导致curl使用application/x-www-form-urlencoded。 ( O) Z. m, ?4 X& q( Q/ k
Content-Type发送数据curl -X POST -d name=Jason -d email=jason@example.com https://xxxxxx.com/contact.php 。 ( y2 @( B H4 s% ]8 ^; n8 p
如果-d多次使用该选项,则可以使用&符号合并数据:curl -X POST -d name=Jason&email=jason@example.com https://xxxxxx.com/contact.php - N, Q1 i- [) k- x; A/ D( J+ o) i
指定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 。
; {1 P+ o' `$ O7 M5 j5 A$ f; w 文件上传要使用curl来上传文件,只需在文件位置之前添加 at 符号该文件可以是任何支持的类型curl -X POST -F image=@/home/user/Pictures/wallpaper.jpg http://example.com/upload 。
! D8 ^" F1 x ~ 设置代理1、curl命令设置http代理:将请求代理到 113.185.19.192 服务器的 80 端口# 指定http代理IP和端口
: L2 }0 ?" y) m( `: T& R curl -x 113.185.xx.xx:80 http://xxxxxx.com/test.php) M; o% I! U' @& r
curl --proxy 113.185.xx.xx:80 http://xxxxxx.com/test.php
! W k7 d+ M( O2 d3 v9 c7 T) A
. B6 @$ N/ y' E1 l& x% j1 X: k; T #指定为http代理
# G. r2 X; y; X z! ? curl -x http_proxy://113.185.xx.xx:80 http://xxxxxx.com/test.php% h/ F( {- M4 z& K* x+ q
6 ]1 l) J; ^8 L; e$ L
#指定为https代理
$ V+ l& _7 l/ M4 o3 b' T; r curl -x HTTPS_PROXY://113.185.xx.xx:80 http://xxxxxx.com/test.php
3 `$ @) c0 I& P6 w z
( L3 {( F3 `7 b& C J& i4 r* Q #指定代理用户名和密码,basic认证方式7 n, [4 r/ _8 k5 k: Q" ]0 L8 p% j
curl -x root:123456@113.185.xxx.xx:80 http://xxxxxx.com/test.php5 e: C" r8 t; y3 B3 u) V
curl -x 113.185.xx.xx:80 -U root:123456 http://xxxxxx.com/test.php* f0 Q7 k! y- S8 R1 L. J0 x/ ?: x: J
curl -x 113.185.xx.xx:80 --proxy-user root:123456 http://xxxxxx.com/test.php9 [# f) m$ C; [
/ { I" O6 j9 m; f; \* }( F K! j #指定代理用户名和密码,ntlm认证方式- W, l- p1 P; |0 w; V( o
curl -x 113.185.xx.xx:80 -U root:123456 --proxy-ntlm http://xxxxxx.com/test.php# \- t' N4 ^ e( v8 I0 A8 l8 \0 Q
|9 Z8 r, M0 Z% u9 ~# B8 I #指定代理协议、用户名和密码,basic认证方式
$ ^' @+ r2 t' ~) p3 o curl -x http_proxy://root:123456@113.185.xx.xx:80 http://xxxxxx.com/test.php , o) {* C, N# `$ Z8 n
2、curl命令设置socks代理:#使用socks4代理,无需认证方式
) |! l6 b1 g/ h( O curl --socks4 122.192.xx.xx:7280 http://xxxxxx.com/test.php
v. T9 z' [$ U* c5 S curl -x socks4://122.192.xx.xx:7280 http://xxxxxx.com/test.php# P; \& T+ I* g) @( b4 M
# ?% G) r% q' D" u- v6 q8 ?3 u+ ^! { #使用socks4a代理,无需认证方式
( i$ K( \/ _# r curl --socks4a 122.192.xx.xx:7280 http://xxxxxx.com/test.php" {; z0 E5 R5 ?% d, H* X
curl -x socks4a://122.192.xx.xx:7280 http://xxxxxx.com/test.php
P( F: t% o* `; U3 ]# e
$ _; u7 X. W( l8 i Z) y #使用socks5代理,basic认证方式( e' }% M, {+ e! w3 G9 K
curl --socks5 122.192.xx.xx:7280 -U root:123456 http://xxxxxx.com/test.php
9 p, {) K# p" W7 P) d curl -x socks5://root:123456@122.192.xx.xx:7280 http://xxxxxx.com/test.php
- H. [+ }: u% B7 g$ ~% d- ~3 {: g% c7 E+ }: o% B# S
#使用socks5代理,basic认证方式,ntlm认证方式( }' y6 N3 d6 ]/ E& a5 r' d
curl -x socks5://root:123456@122.192.xx.xx:7280 --proxy-ntlm http://xxxxxx.com/test.php
! e% D# e0 y4 j, e5 Q7 O 进行接口测试curl -X POST -H "Content-Type: application/json" -d {"instid": "ivMaUO6fBSQU5TIgITqv1clITO2kMDpD", "status": "Y"} http://10.66.xx.xx:6819/uip/ctghttpServer/callback / d2 ? m8 r. k& [
3 d ~$ l* E8 c' ~3 C, a7 U( U* c% n0 j" F/ M
6 O) Q% l+ }0 T& v |
9 ?4 M z3 L: z4 { e, Z3 L |