MyException - 我的异常网
当前位置:我的异常网» .NET组件控件 » curl-一款适用的URL命令行网络通讯工具/库

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

www.MyException.Cn  网友分享于:2013-09-28  浏览:0次
curl---一款实用的URL命令行网络通讯工具/库

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

一、简介

  • 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),从客户端分别来进行各部分操作的说明:

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

  1. 如查看百度首页源码:
    curl www.baidu.com
    该命令将发送请求,并在命令行显示相应的结果,如下,:
  2. 如果查看还不能满足你的需求,需要进一步将百度首页源码保存在本地进行学习查看:curl -o name www.baidu.com
    将下载目标网页源码到本地,并命名为‘name’:

  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’

    此处 -X 为curl请求方式设置关键字, curl默认请求方式为get,添加-X参数后,可支持其他请求方式;请求方式必须大写

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

文章评论

科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
我是如何打败拖延症的
我是如何打败拖延症的
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
我的丈夫是个程序员
我的丈夫是个程序员
旅行,写作,编程
旅行,写作,编程
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
10个调试和排错的小建议
10个调试和排错的小建议
为什么程序员都是夜猫子
为什么程序员都是夜猫子
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
一个程序员的时间管理
一个程序员的时间管理
漫画:程序员的工作
漫画:程序员的工作
程序员必看的十大电影
程序员必看的十大电影
程序员的鄙视链
程序员的鄙视链
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
程序员都该阅读的书
程序员都该阅读的书
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
 程序员的样子
程序员的样子
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
代码女神横空出世
代码女神横空出世
编程语言是女人
编程语言是女人
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
每天工作4小时的程序员
每天工作4小时的程序员
那些争议最大的编程观点
那些争议最大的编程观点
中美印日四国程序员比较
中美印日四国程序员比较
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
老程序员的下场
老程序员的下场
鲜为人知的编程真相
鲜为人知的编程真相
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
如何成为一名黑客
如何成为一名黑客
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
Java程序员必看电影
Java程序员必看电影
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有