您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

Linux值curl基本用法

时间:2020-04-07 10:11:56  来源:  作者:

Linux值curl基本用法

curl 是一个很强大的命令行工具。你可以把 CURL 想象成一个精简的命令行网页浏览器。它支持几乎你能想到的所有协议,可以交互访问几乎所有在线内容。唯一和浏览器不同的是,cURL 不会渲染接收到的相应信息。curl和wget类似也支持上传下载等感觉比wget更强大,但我觉得用途方面更偏重于模拟网络请求,而下载方面我更喜欢用wget,curl的用法也和wget类似!

  1. 查看源码,直接curl 网址,源码就会打印在命令行上:
curl www.baidu.com
  1. 也可以保存源码 用curl -O 文件名 url:
curl -O baidu.txt wwww.baidu.com

这个和wget类似

wget -O baidu1 www.baidu.com
  1. 显示网页头部信息 用-i,当然也会把网页信息显示出来
[root@VM_0_11_centos training]# curl -i www.baidu.com
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: Thu, 02 Apr 2020 02:14:33 GMT
Etag: "588604c8-94d"
Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

<!DOCTYPE html>
 xxx
  </html> 
  1. 参数 -v可以显示通信的过程:
[root@VM_0_11_centos training]# curl -v www.baidu.com
* About to connect() to www.baidu.com port 80 (#0)
*   Trying 180.101.49.11...
* Connected to www.baidu.com (180.101.49.11) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.baidu.com
> 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: Thu, 02 Apr 2020 02:16:36 GMT
< Etag: "588604c8-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
< 

更详细的通信信息可以用 参数 --trance 文件名 url,具体信息保存到单独的文件中

[root@VM_0_11_centos training]# curl --trace info.txt www.baidu.com
  1. htpp的动词,例如GET POST,PUT,DELETE等,需要参数 -X
    curl默认的是get请求,如果发送POSt请求
curl -X POST www.baidu.com

发送表单的时候,GET很简单 只需要把数据拼接到url后面就行

curl www.baidu.com?data=xxx&data1=xxx

POST也不难

curl -X POST --data "data=xxx" example.com/form.cgi

POST发送请求的数据体可以用-d

$ curl -d'login=emma&password=123'-X POST https://google.com/login
 或者
$ curl -d 'login=emma' -d 'password=123' -X POST  https://google.com/login

使用-d参数以后,HTTP 请求会自动加上标头Content-Type : Application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。-d参数可以读取本地文本文件的数据,向服务器发送。

$ curl -d '@data.txt' https://google.com/login

上面命令读取data.txt文件的内容,作为数据体向服务器发送。

  1. 文件上传: 假定文件上传的表单是下面这样:
 <form method="POST" enctype='multipart/form-data' action="upload.cgi">
    <input type=file name=upload>
    <input type=submit name=press value="OK">
  </form>

curl上传就应该是:

curl --form upload=@localfilename --form press=OK [URL]
  1. --referer参数表示的是你从哪个页面来的
[root@VM_0_11_centos training]# curl --referer www.baidu.com www.baidu.com
  1. User Agent字段,这个字段表示的是客户端设备的信息,服务器可能会根据这个User Agent字段来判断是手机还是电脑
curl --user-agent " xx" url
比如iphone 
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like mac OS X; en-us) 
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5


 curl --user-agent "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) 
 AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"  www.baidu.com

--user-agent 可以用-A或者-H来替代

  1. --cookie参数,使用--cookie可以携带cookie信息
curl --cookie "name=xxx" URL
 `-c cookie-file`可以保存服务器返回的cookie到文件,
 `-b cookie-file`可以使用这个文件作为cookie信息,进行后续的请求。
  1. 增加头部信息 --header
curl --header "Content-Type:application/json" http://example.com

参考:

http://www.ruanyifeng.com/blog/2011/09/curl.html

http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

 

 



Tags:Linux值   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
curl 是一个很强大的命令行工具。你可以把 CURL 想象成一个精简的命令行网页浏览器。它支持几乎你能想到的所有协议,可以交互访问几乎所有在线内容。唯一和浏览器不同的是,c...【详细内容】
2020-04-07  Tags: Linux值  点击:(93)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条