不久前一段时间在看朴灵翻译的《深刻浅出nodejs》,里面有涉嫌一种退出浏览器的客户端互连网通信工具,curl命令,自身在微型计算机上试了须臾间,感觉那一个好用,而且莫名的感觉那是一个要命强大的互联网工具,一定会成为web开发者的壹把小军刀;由此就上网查了弹指间连锁资料,并整理了弹指间连锁的常用用法:
亚洲城ca88 1

近些年一段时间在看朴灵翻译的《长远浅出nodejs》,里面有关系壹种退出浏览器的客户端互联网通信工具,curl命令,自个儿在总计机上试了1晃,感觉相当好用,而且莫名的感到那是二个那1个有力的网络工具,一定会化为web开发者的1把小军刀;因而就上网查了一下辅车相依资料,并整理了一晃相关的常用用法:
亚洲城ca88 1

一、简介

  • CURL:本篇文章的标题即为 官网
    上显眼定义的直译:command line tool and library for transferring data with URLs;
  • 支撑的磋商项目:支持大致1切的互连网传输协议项目,你或许会思疑这里的全部,无需解释,直接贴上原来的书文

    Supports…
    DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
    LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS,
    Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP
    PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2,
    cookies, user+password authentication (Basic, Plain, Digest,
    CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume,
    proxy tunneling and more.

  • 正文不介绍工具的设置,如需安装教程,请自行移动
    官网 或者
    参照此篇

    二、常用用法

    不论是网址开发,照旧别的的传输协议项目,回归精神都以对数码的读写操作,即开立、查询、加解密、传输、修改、删除;其分裂之处在于各个协商的基础架构及协商项指标例外,从落实方式上来看,也正是传输控制字段的分化,以及传输界面、交互的距离。下边以网址开发的角度,类比http协议的8中http请求方式(get、post、put、delete、head、connnect、options、trace),从客户端独家来拓展各部分操作的注脚:

一、简介

  • CURL:本篇小说的标题即为 官网
    上鲜明定义的直译:command line tool and library for transferring data with URLs;
  • 支撑的磋商项目:协理差不离一切的网络传输协议项目,你恐怕会思疑那里的全部,无需解释,直接贴上原来的小说

    Supports…
    DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
    LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS,
    Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP
    PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2,
    cookies, user+password authentication (Basic, Plain, Digest,
    CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume,
    proxy tunneling and more.

  • 正文不介绍工具的设置,如需安装教程,请自行移动
    官网 或者
    参照此篇

    二、常用用法

    不论是网址开发,依然其余的传输协议项目,回归精神都以对数码的读写操作,即创办、查询、加解密、传输、修改、删除;其分裂之处在于各类协商的基础框架结构及协商项指标分化,从落实方式上来看,相当于传输控制字段的两样,以及传输界面、交互的距离。下边以网址开发的角度,类比http协议的8中http请求情势(get、post、put、delete、head、connnect、options、trace),从客户端独家来进行各部分操作的辨证:

git bash中能够使用curl

一. 查询:GET–查看网页源码

  1. 如查看百度首页源码:
    curl www.baidu.com
    该命令将发送请求,并在命令行呈现相应的结果,如下,:
    亚洲城ca88 3
  2. 假设查阅还不可能满意你的急需,需求尤其将百度首页源码保存在本地开始展览学习查看:curl -o name www.baidu.com
    将下载指标网页源码到地头,并取名叫‘name’:
    亚洲城ca88 4

  3. GET 的其它用法

  • curl -i www.baidu.com
    ——获取请求结果,将响应头、响应体同时在命令行输出
  • curl -I www.baidu.com
    ——获取请求结果,仅仅将响应头消息在命令行输出
  • curl -L baidu.com ——如目标网页转移地方,将自行进行重定向
  • curl -v www.baidu.com
    ——在命令行输出一回http请求的全经过,包含端口连接、请求头、请求体、响应头、响应体
  • curl --trace out.txt www.baidu.com
    ——将全方位请求的端口连接、请求消息、响应进度的全套音信保存至地点,一碗水端平命名字为‘out.txt’
  • curl www.baidu.com/s?wd=hbzyin ——用百度找寻关键字‘hbzyin’:
    将在百度首页查询关键字‘hbzyin’,并将结果在命令行输出
  1. GET 添加额外请求消息
  • curl --header "Content-Type=text.plain" yourwebsite.com
    —-扩展请求头/request header
  • curl --cookie "cookiename=xxx" yourwebsite.com
    —–扩张cookie音讯至请求
  • curl -c cookies-file yourwebsite.com
    —–将呼吁响应的cookie消息保存至文件cookie-file中
  • curl -b cookies-file yourwebsite.com
    —–将请求响应的cookie新闻保存至文件cookie-file中,并在此起彼伏请求中采纳
  • curl --referer yourwebsite.com www.baidu.com
    ——添参与口跳转来源yourwebsite.con ,跳转至指标网址百度
  • curl --user-agent "your user angent" baidu.com
    ——添加客户端设备消息;服务器会基于该字段,针对不相同装备再次回到分化网页格式。如手提式无线电话机和PC

1. 询问:GET–查看网页源码

  1. 如查看百度首页源码:
    curl www.baidu.com
    该命令将发送请求,并在命令行显示相应的结果,如下,:
    亚洲城ca88 3
  2. 假若翻开还无法满足你的须要,须求更为将百度首页源码保存在本地开始展览学习查看:curl -o name www.baidu.com
    将下载目的网页源码到地面,并取名称为‘name’:
    亚洲城ca88 4

  3. GET 的其余用法

  • curl -i www.baidu.com
    ——获取请求结果,将响应头、响应体同时在命令行输出
  • curl -I www.baidu.com
    ——获取请求结果,仅仅将响应头音讯在命令行输出
  • curl -L baidu.com ——如指标网页转移地方,将活动进行重定向
  • curl -v www.baidu.com
    ——在命令行输出二遍http请求的全经过,包含端口连接、请求头、请求体、响应头、响应体
  • curl --trace out.txt www.baidu.com
    ——将一切请求的端口连接、请求音信、响应进度的漫天新闻保存至本土,同等对待命名字为‘out.txt’
  • curl www.baidu.com/s?wd=hbzyin ——用百度查寻关键字‘hbzyin’:
    将在百度首页查询关键字‘hbzyin’,并将结果在命令行输出
  1. GET 添加额外请求音讯
  • curl --header "Content-Type=text.plain" yourwebsite.com
    —-扩大请求头/request header
  • curl --cookie "cookiename=xxx" yourwebsite.com
    —–扩张cookie音讯至请求
  • curl -c cookies-file yourwebsite.com
    —–将呼吁响应的cookie信息保存至文件cookie-file中
  • curl -b cookies-file yourwebsite.com
    —–将请求响应的cookie音讯保存至文件cookie-file中,并在后续请求中央银行使
  • curl --referer yourwebsite.com www.baidu.com
    ——添参加口跳转来源yourwebsite.con ,跳转至指标网址百度
  • curl --user-agent "your user angent" baidu.com
    ——添加客户端设备音信;服务器会依照该字段,针对分裂装备再次回到差别网页格式。如手提式有线电话机和PC

curl网址开发指南

作者: 阮一峰

日期: 2011年9月 4日

自个儿根本认为,curl只是2个编程用的函数库。

如今才察觉,那么些命令本人,正是3个无比有用的网址开发工具,请看小编整理的它的用法。

===================================

curl网址开发指南

阮一峰 整理

亚洲城ca88 7

curl是1种命令行工具,功能是发生网络请求,然后拿走和领取数额,显示在”标准输出”(stdout)上边。

它帮忙各个商谈,上面举例讲解如何将它用来网址开发。

1、查看网页源码

间接在curl命令后增进网站,就足以看看网页源码。大家以网站www.sina.com为例(选拔该网址,首要因为它的网页代码较短):

  $ curl www.sina.com

  <!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a
href=”;
  </body></html>

借使要把那个网页保存下去,能够运用`-o`参数,那就约等于选用wget命令了。

  $ curl -o [文件名] www.sina.com

二、自动跳转

有的网站是电动跳转的。使用`-L`参数,curl就会跳转到新的网站。

  $ curl -L www.sina.com

键入上面的下令,结果就自行跳转为www.sina.com.cn。

叁、彰显头音讯

`-i`参数能够显示http response的头音信,连同网页代码1起。

  $ curl -i www.sina.com

  HTTP/1.0 301 Moved Permanently
  Date: Sat, 03 Sep 2011 23:44:10 GMT
  Server: Apache/2.0.54 (Unix)
  Location:
  Cache-Control: max-age=3600
  Expires: Sun, 04 Sep 2011 00:44:10 GMT
  Vary: Accept-Encoding
  Content-Length: 231
  Content-Type: text/html; charset=iso-8859-1
  Age: 3239
  X-Cache: HIT from sh201-9.sina.com.cn
  Connection: close

  <!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a
href=”;
  </body></html>

`-I`参数则是只呈现http response的头音信。

肆、展现通讯进度

`-v`参数能够体现一遍http通讯的漫天进程,包蕴端口连接和http
request头信息。

  $ curl -v www.sina.com

  * About to connect() to www.sina.com port 80 (#0)
  * Trying 61.172.201.195… connected
  * Connected to www.sina.com (61.172.201.195) port 80 (#0)
  > GET / HTTP/1.1
  > User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3
OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
  > Host: www.sina.com
  > Accept: */*
  > 
  * HTTP 1.0, assume close after body
  < HTTP/1.0 301 Moved Permanently
  < Date: Sun, 04 Sep 2011 00:42:39 GMT
  < Server: Apache/2.0.54 (Unix)
  < Location:
  < Cache-Control: max-age=3600
  < Expires: Sun, 04 Sep 2011 01:42:39 GMT
  < Vary: Accept-Encoding
  < Content-Length: 231
  < Content-Type: text/html; charset=iso-8859-1
  < X-Cache: MISS from sh201-19.sina.com.cn
  < Connection: close
  < 
  <!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a
href=”;
  </body></html>
  * Closing connection #0

万壹您认为下边包车型客车消息还不够,那么下边包车型大巴授命可以查看更详实的通讯进程。

  $ curl –trace output.txt www.sina.com

或者

  $ curl –trace-ascii output.txt www.sina.com

运转后,请打开output.txt文件查看。

伍、发送表单消息

出殡表单新闻有GET和POST三种办法。GET方法相对简便易行,只要把数据附在网站前面就行。

  $ curl example.com/form.cgi?data=xxx

POST方法必须把数据和网站分开,curl就要用到–data参数。

  $ curl -X POST –data “data=xxx” example.com/form.cgi

万1你的多寡没有通过表单编码,还足以让curl为您编码,参数是`–data-urlencode`。

  $ curl -X POST–data-urlencode “date=April 1” example.com/form.cgi

六、HTTP动词

curl默认的HTTP动词是GET,使用`-X`参数能够支撑其余动词。

  $ curl -X POST www.example.com

  $ curl -X DELETE www.example.com

7、文件上传

假诺文件上传的表单是下边这样:

  <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]

八、Referer字段

有时你需求在http
request头音讯中,提供三个referer字段,表示你是从何地跳转过来的。

  $ curl –referer

九、User Agent字段

其一字段是用来表示客户端的设施消息。服务器有时会基于这一个字段,针对分化装备,重临不一样格式的网页,比如手提式有线电话机版和桌面版。

iPhone4的User Agent是

  Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us)
AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293
Safari/6531.22.7

curl能够那样效仿:

  $ curl –user-agent “[User Agent]” [URL]

十、cookie

使用`–cookie`参数,可以让curl发送cookie。

  $ curl –cookie “name=xxx” www.example.com

至于实际的cookie的值,能够从http
response头消息的`Set-Cookie`字段中获取。

`-c cookie-file`能够保留服务器重临的cookie到文件,`-b
cookie-file`可以采用这些文件作为cookie消息,实行持续的呼吁。

  $ curl -c cookies
  $ curl -b cookies

拾1、扩大头消息

有时供给在http
request之中,自行扩充3个头消息。`–header`参数就足以起到那些成效。

  $ curl –header “Content-Type:application/json”

十二、HTTP认证

稍许网域必要HTTP认证,这时curl供给选取`–user`参数。

  $ curl –user name:password example.com

【参考资料】

  * Using cURL to automate HTTP
jobs

  * 教您学用CU哈弗L

  * 9 uses for cURL worth
knowing

(完)

2. 上传数据:POST–向服务器上传信息

  1. 表单数据上传:
    curl -X POST --data "key=value" yourwebsite.com
    ——向指标网址发送post 请求,请求体为:’key=value’
  2. 表单数据url加密后上传:
    curl -X POST --data-urlencode "key=value" yourwebsite.com
    –向目的网址发送url加密后的post请求,请求体为:‘key=value’

    那边 -X 为curl请求格局设置首要字,
    curl暗中同意请求形式为get,添加-X参数后,可支撑任何请求格局;请求情势必须大写

二. 上传数据:POST–向服务器上传新闻

  1. 表单数据上传:
    curl -X POST --data "key=value" yourwebsite.com
    ——向指标网址发送post 请求,请求体为:’key=value’
  2. 表单数据url加密后上传:
    curl -X POST --data-urlencode "key=value" yourwebsite.com
    –向目标网址发送url加密后的post请求,请求体为:‘key=value’

    此间 -X 为curl请求格局设置首要字,
    curl暗中认可请求格局为get,添加-X参数后,可支撑任何请求形式;请求格局必须大写

文书档案新闻

三. 改动数据:PUT

curl -X PUT yourwebsite.com --data "data=somedata"
—向目的网址发送请求,请求体为:data=somedata

三. 改动数据:PUT

curl -X PUT yourwebsite.com --data "data=somedata"
—向目的网站发送请求,请求体为:data=somedata

四. 删减数据:DELETE

curl -X DELETE yourwebsite.com/deleteSource
–向指标网址发送删除请求,请求地址: yourwebsite.com/deleteSource

四. 剔除数据:DELETE

curl -X DELETE yourwebsite.com/deleteSource
–向目的网站发送删除请求,请求地址: yourwebsite.com/deleteSource

5. 文书上传:

curl --form formname=@localfilname --form press=OK yourwebsite.com

5. 文件上传:

curl --form formname=@localfilname --form press=OK yourwebsite.com

6.栗子

 curl -X POST --data "grant_type=password&username=admin@web.com&password=20120626" --header "Authorization:Basic ZGFzaGJvYXJkOnNlY3JldA==" https://www.web.com/oauth/token

 curl -X GET  --header "Authorization:Bearer 5640b2e1-e931-416b-8873-caca121a1aa1"   https://www.web.com/accounts/me
 curl -X GET  --header "Authorization:Bearer 5640b2e1-e931-416b-8873-caca121a1aa1"   https://www.web.com/newmonitor/mongodb
 curl -X GET  --header "Authorization:Bearer 5640b2e1-e931-416b-8873-caca121a1aa1"   https://www.web.com/newmonitor/mysql

6.栗子

 curl -X POST --data "grant_type=password&username=admin@web.com&password=20120626" --header "Authorization:Basic ZGFzaGJvYXJkOnNlY3JldA==" https://www.web.com/oauth/token

 curl -X GET  --header "Authorization:Bearer 5640b2e1-e931-416b-8873-caca121a1aa1"   https://www.web.com/accounts/me
 curl -X GET  --header "Authorization:Bearer 5640b2e1-e931-416b-8873-caca121a1aa1"   https://www.web.com/newmonitor/mongodb
 curl -X GET  --header "Authorization:Bearer 5640b2e1-e931-416b-8873-caca121a1aa1"   https://www.web.com/newmonitor/mysql

柒. 参照文章

  1. 15 Practical Linux cURL Command
    Examples;
  2. CUCRUISERL常用命令;
  3. CU昂CoraL网址开发指南;
  4. CU奥迪Q3L英文官网;
  5. CURL github项目。

    以上主要在此以前端开发角度,对curl的形似用法进行了整治,对于网址开发或后端API开发,那都当成二个简介神速方便的工具;要是能进一步将项目支付的急需编写成测试脚本,将为付出带来很大的快感!

–END

柒. 参考小说

  1. 15 Practical Linux cURL Command
    Examples;
  2. CUSportageL常用命令;
  3. CULacrosseL网址开发指南;
  4. CUCRUISERL英文官网;
  5. CURL github项目。

    如上海重机厂大以前端开发角度,对curl的形似用法进行了整治,对于网址开发或后端API开发,那都当成多少个简介飞速方便的工具;即使能进一步将项目支付的内需编写成测试脚本,将为付出带来非常的大的快感!

–END

相关文章