重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使用做下总结
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、北辰网络推广、小程序制作、北辰网络营销、北辰企业策划、北辰品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供北辰建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
一、Curl命令用法
1. curl语法和参数选项
# curl [option] [url]
curl常见参数
2. curl使用说明
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面说下curl命令的日常使用示例:
3. curl上传文件的用法(POST请求方式)
一般来说,我们都会用curl下载网页,但是curl上传文件则不常用。下面说下curl模拟"multipart/form-data"形式的form上传文件, 命令稍稍复杂些。
4. curl常用示例
5. curl命令的超时时间
二、Curl的GET、POST、PUT、DELETE请求
1. GET、POST、PUT、DELETE含义与区别
2. GET、POST、PUT、DELETE四种请求方式的curl访问
curl 命令,是一个利用URL规则在命令行下工作的文件传输工具。
curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,还支持 GET、POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征,还可以做网页处理流程和数据检索自动化。
在进行web后台程序开发测试过程中,常常会需要发送url进行测试,使用curl可以方便地模拟出符合需求的url命令
curl 语法:curl [options...] url # curl (选项) (参数)
示例1:curl -m 30 --retry 3 // curl 爬取网页,获取本机外网ip
示例2:curl -m 30 --retry 3 -x // curl 通过代理IP爬取网页,获取本机外网ip
更多示例: (Shell curl wget)
使用curl发送GET请求:curl protocol://ip:port/url?args
curl ;passwd=12345678
使用curl发送POST请求: (推荐)
curl -d "key1=value1key2=value2key3=value3" protocol://ip:port/path
示例1:curl -d 'post_data=i_love_mimvp.com' // 测试 post ,发送什么数据就返回什么数据,如 'i_love_mimvp.com'
示例2:curl -d "user=adminpasswd=12345678" // 测试 post ,模拟发送登录的用户名和密码
这种方法是参数直接在header里面的,如需将输出指定到文件可以通过重定向进行操作.
curl -H "Content-Type:application/json" -X POST -d 'json data' URL
示例1:curl -H "Content-Type:application/json" -X POST -d '{"post_data":"i_love_mimvp.com"}' ''
示例2:curl -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}'
curl 应用实例
1. 文件下载
curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。
如果系统没有curl可以使用 yum install curl 安装,也可以下载安装。
curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用 --silent 选项。
curl URL --silent
这条命令是将下载文件输出到终端,所有下载的数据都被写入到stdout。
使用选项-O将下载的数据写入到文件,必须使用文件的绝对地址:
curl --silent -O
选项-o将下载数据写入到指定名称的文件中,并使用--progress显示进度条:(常用)
curl
URL 编码/解码方法(linux shell实现),方法如下:
1、编码的两种方法:
admin@~ 11:14:29echo '手机' | tr -d '\n' | xxd -plain | sed 's/\(..\)/%\1/g'
admin@~ 11:14:29echo '手机' |tr -d '\n' |od -An -tx1|tr ' ' %
2、解码的两个步骤:
admin@~ 11:15:11url="要解码的URL地址"
admin@~ 11:15:11 printf $(echo -n $url | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n"
需要工具
下载用wget
上网可以用link elink w3m lynx
远程有telnet
在命令符界面如何浏览网页可以使用lynx,links, w3m等软件
软件的使用方式都很类似,下面以w3m为例介绍如何安装使用:
1.安装w3m浏览器:sudo apt-get install w3m
2.使用w3m浏览网页:w3m url.xxx
不需要设定路径,Linux socket编程中通过调用网络信息函数查询URL中域名对应的IP地址,这个函数是gethostbyname,它通过查询/etc/hosts文件或者DNS服务来确定域名对应的IP地址,不过它并不是返回一个IP地址,而是返回一个hostent结构,这个结构在connect调用中会用到。URL的参数部分则是在HTTP请求的请求头也就是“HTTP请求首部”中给予,所以Linux socket编程中对于URL考虑好域名获取IP就可以了。