最近一段时间在看朴灵翻译的《深入浅出nodejs》,里面有提到一种脱离浏览器的客户端网络通讯工具,curl命令,自己在电脑上试了一下,感觉非常好用,而且莫名的感觉这是一个非常强大的网络工具,一定会成为web开发者的一把小军刀;因此就上网查了一下相关资料,并整理了一下相关的常用用法:

curl---一款实用的URL命令行网络通讯工具/库-LMLPHP

一、简介

  • CURL:本篇文章的标题即为 官网 上醒目定义的直译:command line tool and library for transferring data with URLs;
  • 支持的协议类型:支持几乎全部的网络传输协议类型,你可能会质疑这里的全部,无需解释,直接贴上原文

  • 本文不介绍工具的安装,如需安装教程,请自行移步 官网 或者 参考此篇

    二、常用用法

1. 查询:GET--查看网页源码

  1. 如查看百度首页源码:

    curl www.baidu.com

    该命令将发送请求,并在命令行显示相应的结果,如下,:

    curl---一款实用的URL命令行网络通讯工具/库-LMLPHP
  2. 如果查看还不能满足你的需求,需要进一步将百度首页源码保存在本地进行学习查看:curl -o name www.baidu.com

    将下载目标网页源码到本地,并命名为‘name’:

    curl---一款实用的URL命令行网络通讯工具/库-LMLPHP

  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

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’

3. 修改数据:PUT

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

4. 删除数据:DELETE

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

5. 文件上传:

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

6. 参考文章

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

    以上主要从前端开发角度,对curl的一般用法进行了整理,对于网站开发或后端API开发,这都不失为一个简介快速方便的工具;如果能进一步将项目开发的需要编写成测试脚本,将为开发带来极大的快感!

--END

04-26 16:32
查看更多