美文网首页
linux命令之 curl

linux命令之 curl

作者: 黑曼巴yk | 来源:发表于2019-10-06 21:34 被阅读0次

前言

CURL是一个命令行工具,curl中的c表示client。用于通过指定URL来上传或者下载数据,并将数据展示出来。

Verbose模式

如果curl得到的结果不是期望的结果,我们可以使用-v或者--verbose进入verbose模式获取更多的信息

  1. 查看通信的过程
curl -v www.baidu.com

得到通信的过程

* Rebuilt URL to: www.baidu.com/
*   Trying 14.215.177.39...
* TCP_NODELAY set
* Connected to www.baidu.com (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: Keep-Alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Sun, 06 Oct 2019 12:44:39 GMT
< Etag: "588604dd-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:57 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
  1. 更加详细的信息
    如果觉得-v信息还不够的话,还可以使用--trace-ascii [filename]选项将完整流程保存到filename
curl --trace-ascii dump www.baidu.com

结果如下:

== Info: Rebuilt URL to: www.baidu.com/
== Info:   Trying 14.215.177.39...
== Info: TCP_NODELAY set
== Info: Connected to www.baidu.com (127.0.0.1) port 80 (#0)
=> Send header, 77 bytes (0x4d)
0000: GET / HTTP/1.1
0010: Host: www.baidu.com
0025: User-Agent: curl/7.54.0
003e: Accept: */*
004b:
<= Recv header, 17 bytes (0x11)
0000: HTTP/1.1 200 OK
<= Recv header, 22 bytes (0x16)
0000: Accept-Ranges: bytes
<= Recv header, 76 bytes (0x4c)
0000: Cache-Control: private, no-cache, no-store, proxy-revalidate, no
// ...

浏览器到curl

image.png

HTTP和curl

  1. GET/POST/DELETE/PUT等方法
get:
    curl -v 192.168.33.1:8080/girls/age/18

post:
    curl -v 192.168.33.1:8080/girls -d 'age=14&cupSize=C'
    curl -v -X POST 192.168.33.1:8080/girls -d 'age=14&cupSize=C'

put:
    curl -v -X PUT -d "age=19&cupSize=C" 192.168.33.1:8080/girls/3

delete:
    curl -v -X DELETE 192.168.33.1:8080/girls/3
  1. 传递自定义Header
    提交application/jsonJSON 格式的数据
curl -d 'name=dankun' -H 'Content-Type: application/json' http://example.com

Cookies

http是一种无状态的协议,为了在会话中保存一些状态,可以使用Cookies.服务器通过set-cookie来设置Cookie,客户端就可以在下一次请求中带上这些数据

  1. 设置cookie
curl --cookie 'name=dankun' http://example/com
  1. 从文件中读取cookies
    curl 默认不会记住服务器设置的Cookie,也不会在下一次的请求中携带Cookie。我们可以把之前的Cookies保存到一个文件中,然后下一次请求中指定curl读取文件中的cookies
curl -b cookie.jar.txt www.baidu.com
  1. 写cookies到文件中
    www.baidu.com的cookie写入到cookie.jar.txt文件中。
curl -c cookie.jar.txt www.baidu.com

我们可以既从文件中读取Cookies也需要同时保存服务器设置的Cookies。可以使用-b, -c选项:

curl -b cookies.txt -c cookie.jar.txt www.baidu.com

代理配置

可以通过配置代理服务器进行网络访问

curl -x 123.45.67.89:1080 www.baidu.com

忽略输出

-o代表输出设备,我们将输出设备为空。

curl -v -o /dev/null www.baidu.com

相关文章

  • curl命令详解

    linux命令之curl curl命令详解 1、curl命令简介 curl命令是一个利用URL规则在命令行下工作的...

  • Linux curl

    Linux curl命令详解 命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工...

  • Linux命令之curl

    获取http请求头信息,-I 只打印response header, -i 打印response header和...

  • linux命令之 curl

    前言 CURL是一个命令行工具,curl中的c表示client。用于通过指定URL来上传或者下载数据,并将数据展示...

  • linux命令之curl

    curl上传文件 后端是用的multipart控件接收 测试代码清单一 curl Controller 参数 cu...

  • linux之curl命令

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它...

  • Mac 命令行

    命令行 Linux命令 Curl curl是一个传输文件(上传、下载)的命令行工具,它支持FTP,FTPS,HTT...

  • 210629:Linux中使用curl命令发送带参数的get请求

    一. Linux中使用curl命令发送带参数的get请求和post请求 1. GET请求 curl命令 + 请求接...

  • curl 命令

    命令:curl 例子: 1、基本用法 # curl http://www.linux.com 执行后,www.li...

  • Linux命令--curl

    功能简介 curl命令是一个利用URL规则在命令行下工作的文本传输工具,支持文件上传和下载。curl支持HTTP、...

网友评论

      本文标题:linux命令之 curl

      本文链接:https://www.haomeiwen.com/subject/shmupctx.html