- 适用范围
- 计算机
- 类 别
- 用URL语法
- 作 用
- 文件传输
- 中文名
- curl
- 外文名
- curl(CommandLine Uniform Resource Locator)
-
curl 模拟 GET\POST 请求,以及 curl post 上传文件
2018-06-15 11:41:45curl 模拟 GET\POST 请求,以及 curl post 上传文件 一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了。事实上,我们在调试一些小功能的时候,完全没有必要使用它。在命令行...curl 模拟 GET\POST 请求,以及 curl post 上传文件
一般情况下,我们调试数据接口,都会使用一个
postman
的工具,但是这个工具还是有点大了。事实上,我们在调试一些小功能的时候,完全没有必要使用它。在命令行中,我们使用curl
这个工具,完全可以满足我们轻量的调试要求。下面,我们来简单的说一下,
curl
的一些常见使用方法:curl GET 请求
curl
命令 + 请求接口的地址。curl localhost:9999/api/daizhige/article
如上,我们就可以请求到我们的数据了,如果想看到详细的请求信息,我们可以加上
-v
参数curl localhost:9999/api/daizhige/article -v
操作结果如下图所示:
curl POST 请求
我们可以用
-X POST
来申明我们的请求方法,用-d
参数,来传送我们的参数。所以,我们可以用
-X PUT
和-X DELETE
来指定另外的请求方法。curl localhost:9999/api/daizhige/article -X POST -d "title=comewords&content=articleContent"
如上,这就是一个普通的
post
请求。但是,一般我们的接口都是
json
格式的,这也没有问题。我们可以用-H
参数来申明请求的header
curl localhost:9999/api/daizhige/article -X POST -H "Content-Type:application/json" -d '{"title":"comewords","content":"articleContent"}'
so, 我们可以用
-H
来设置更多的header
比如,用户的token
之类的。同样,我们可以用
-v
来查看详情。curl POST 上传文件
上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件,其实这个对于
curl
来说,也是小菜一碟。我们用
-F "file=@__FILE_PATH__"
的请示,传输文件即可。命令如下:curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v
执行结果如下图所示:
更多
curl
的使用方法,以及参数说明,可以在系统中输入man curl
来进行查看。或者,点击 curl man 查看网页版的介绍。所以,我们可以用
man 命令名称
来查看更多的工具的介绍。当然,一些非主流的命令行工具,应该是没有相关的介绍的。可能你会感觉用这些命令才进行操作,感觉破烦。但是,当你仅仅需要请求一个接口,进行一个轻量的操作的时候,是顺手在终端中输入一个命令来得方便,还是打开一个重型的图形工具来得方便呢?
命令行是可以保存历史记录的,我们使用
ctrl+r
快捷键可以进行历史命令搜索,这样,我们可以非常方便的重复进行命令调试。我现在已经养成了在终端中写代码,跑代码,以及调试代码的习惯,我感觉这样非常方便。
当然,我的想法不一定是正确的,但是依然希望,能够对看官有所帮助。
本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。
2020年04月27日补充
我没想到这篇博文有这么大的阅读量。文中所表述的 curl 的使用虽然关键点都已经涉及到了,但是如何更加优雅的使用,并没有涉及。如果你对这部分内容感兴趣,可以阅读我的这篇博文 《linux 或 mac 命令行更优雅的使用 curl 命令,以及命令行常用的快捷键说明》,相信各位看官在看过这篇文章之后,对于
curl
命令的使用,会更加的舒服、优雅哦! -
curl
2016-09-06 14:30:59//var_dump($_SERVER);exit; $cookie_file = tempnam('./temp','cookie'); //创建cookie文件保存的位置 //echo $cookie_file;... function curl($url,$data=array(),$method,$setcooke=false,$cookie_file=f<?php //var_dump($_SERVER);exit; $cookie_file = tempnam('./temp','cookie'); //创建cookie文件保存的位置 //echo $cookie_file;exit; function curl($url,$data=array(),$method,$setcooke=false,$cookie_file=false){ $ch = curl_init(); //1.初始化 curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);//3.请求方式 //4.参数如下 禁止服务器端的验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //伪装请求来源,绕过防盗 //curl_setopt($ch,CURLOPT_REFERER,"http://wthrcdn.etouch.cn/"); //配置curl解压缩方式(默认的压缩方式) curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip')); curl_setopt($ch, CURLOPT_ENCODING, "gzip"); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0'); //指明以哪种方式进行访问 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); if($method=="POST"){//5.post方式的时候添加数据 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } if($setcooke==true){ //如果设置要请求的cookie,那么把cookie值保存在指定的文件中 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); }else{ //就从文件中读取cookie的信息 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $tmpInfo = curl_exec($ch); if (curl_errno($ch)) { return curl_error($ch); } curl_close($ch); return $tmpInfo; } //模拟登陆 //登陆保存用户信息到cookie中 $url="http://www.ecshop.com/user.php"; $data=array('username'=>'ecshop','password'=>'ecshop','remember'=>'1','act'=>'act_login','back_act'=>'./index.php','submit'=>''); //post提交也可以不用get视情况而定,json转成数组json_decode($str,true);加true可以防乱码 curl($url,$data,'POST',true,$cookie_file); //get获取 $url="http://www.ecshop.com/user.php?act=order_list"; $str=curl($url,array(),'GET',false,$cookie_file); echo $str;
-
curl -d
2018-04-12 14:52:22curl命令模拟json格式的post请求 例如:curl -H “Content-Type:application/json” -X POST –data ‘[{“index”:[“*”],”preference”:”1503652289983”,”ignore_unavailable”:”true”},{“sort”:[{...curl命令模拟json格式的post请求
例如:curl -H “Content-Type:application/json” -X POST --data ‘[{“index”:["*"],“preference”:“1503652289983”,“ignore_unavailable”:“true”},{“sort”:[{“timestamp”:{“order”:“desc”}}],“query”:{“must_not”:[],“bool”:{“must”:[{“query_string”:{“query”:“cluster”}},{“range”:{“timestamp”:{“gte”:“1503667558137”,“lte”:“1503667558137”}}}]}},“from”:“0”,“size”:“500”,“version”:“true”}]’ http://127.0.0.1:18080/
result=
curl -s -u 'user':'pass' -XGET "http://192.168.13.70:9200/XXX" -H 'Content-Type: application/json' -d '{"size":10000,"query":{"bool":{"must":[{"range":{"status":{"gte":500,"lte":600}}},{"range":{"@timestamp":{"gte":"now-1h","lte":"now","format":"epoch_millis"}}}]}}}'
json串内层参数需要符合json格式规范
-
cURL实战教程
2017-08-24 17:36:05由King老师精心打造cURL实战课程,由浅入深的讲解了cURL中常见的API,及cURL在实际开发中的应用,实现了模拟登陆、文件上传下载、多线程cURL等。通过cURL可以操作各种网络资源! 山哥出品,必属精品! -
Curl 显示下载速度等详情
2020-04-01 11:23:56curl -Lo /dev/null -skw "%{speed_download}\n" http:xxxxxx.gz ...# curl -Lo /dev/null -skw "time_connect: %{time_connect} s\ntime_namelookup: %{time_namelookup} s\ntime_pretransfer: %{time_pretransfe...curl -Lo /dev/null -skw "%{speed_download}\n" http:xxxxxx.gz
# curl -Lo /dev/null -skw "time_connect: %{time_connect} s\ntime_namelookup: %{time_namelookup} s\ntime_pretransfer: %{time_pretransfer} s\ntime_starttransfer: %{time_starttransfer} s\ntime_redirect: %{time_redirect} s\nspeed_download: %{speed_download} B/s\ntime_total: %{time_total} s\n\n" http://www.xxx.com time_connect: 0.154 s time_namelookup: 0.150 s time_pretransfer: 0.154 s time_starttransfer: 0.163 s time_redirect: 0.157 s speed_download: 324679.000 B/s time_total: 1.692 s
-
git报错--RPC failed,curl 18 transfer closed with outstanding read data remaining
2017-08-10 11:06:49遇到的问题一: error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack fail... -
curl安装
2018-06-28 10:57:411、curl官网https://curl.haxx.se/2、curl简介curl是用于通过URL传输数据的命令行工具和库支持...DICT,FILE,FTP,FTPS,Gopher,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP...curl支持SSL证书,H... -
curl命令获取本机外网IP
2018-10-10 20:15:45curl获取本机外网IP的几个命令: curl ifconfig.me curl icanhazip.com curl curlmyip.com curl ip.appspot.com curl ipinfo.io/ip curl ipecho.net/plain curl www.trackip.net/i #补充 curl ip.sb ... -
curl malformed
2019-08-31 11:46:48PHP Curl调用接口时,如果 url 地址是 NULL 类型,那么调用curl_error() 方法将会 返回malformed -
Ubuntu 安装curl
2017-12-22 20:02:15程序“curl”尚未安装。 您可以使用以下命令安装: sudo apt install curl 已经提示很明确了,sudo apt install curl 先更新一下sudo apt-get update sudo apt install curl -
curl命令
2015-06-18 15:26:03curl是一种命令行工具,支持多种协议,作用是发出网络请求,然后得到和提取数据,显示在stdout上面。 在服务器端,使用curl查看请求地址是否返回数据来判断是nginx配置问题还是程序服务配置问题不失为一种好方式... -
curl命令详解 (curl -I)
2019-07-30 11:30:47curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面列举其常用功能。 一、查看网页源码 直接在 curl 命令后加上网址,就可以看到网页源码。以网址... -
curl命令模拟json格式的post请求
2017-09-06 08:48:57curl命令 模拟json格式的post请求测试接口 curl -H "Content-Type:application/json" -X POST --data ' -
Linux中curl命令详解
2019-03-11 15:26:35curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。 https://curl.haxx.se/ 这是curl的官网。可以从上面的官网地址下载最新的curl版本。同时可以在官网看出curl支持的各种协议... -
java 怎么调用curl,java 怎么调用curl
2017-05-05 01:08:22java中怎么使用curl,java中怎么使用curl,java中怎么使用curl, -
PHP中使用CURL之php curl详细解析和常见大坑
2018-09-03 11:38:57这篇文章主要介绍了PHP中使用CURL之php curl详细解析和常见大坑 ,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 七夕啦,作为开发,妹子没得撩就“撩”下服务器吧,妹子有得撩的同学那就左拥妹子... -
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused的几种解决方式
2020-06-19 20:39:49curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused的几种解决方式? 前言: 最近随着flutter的发布,多数公司都开始...curl: (7) Failed to connect to raw.githubuserconten -
curl: symbol lookup error: curl: undefined symbol: curl_mime_free 解决方法
2019-12-26 01:11:59其实就是更新一下版本就可以了。 下载curl包(可以在这个网站上找最新的版本 http://curl.haxx.se/download/) ...tar -xzvf curl-7.55.1.tar.gz cd curl-7.55.1 ./configure make mak... -
-
Tool之curl:curl的简介、安装、使用方法之详细攻略
2020-04-19 13:09:21Tool之curl:curl的简介、安装、使用方法之详细攻略 curl的简介 curl是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL... -
curl乱码
2018-02-08 14:21:03curl url返回的内容乱码 使用iconv命令可以解决乱码问题 curl url|iconv -f gb2312 -t utf8iconv -f(rom)指定来源编码,-t(o)转化的编码 -f fromcodeset Identify the codeset of the input file. The ... -
Linux curl 命令模拟 POST/GET 请求
2018-08-28 23:38:14curl 命令,是一个利用URL规则在命令行下工作的文件传输工具。 curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。 作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,...
-
redis分布式事务锁的使用,高并发下的减库存的实列使用
-
QXposed_2.6_1.apk
-
openssl 实现https 网页访问
-
vue拖拽 —— vuedraggable 表格拖拽行
-
Markdown 标记语言
-
qtabwidget-dragging-tabs:Qt 5 QTabWidget,其中将选项卡拖动到新窗口并像在浏览器中一样向后拖动-源码
-
MySQL 高可用(DRBD + heartbeat)
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
@ConditionalOnRefreshScope 注解对于 Eureka Client创建的重要性
-
在 Linux 上构建企业级 DNS 域名解析服务
-
Liunx 优化思路与实操步骤
-
Vue:校验触发的时机,怎么选择trigger的值
-
somepjs-iterators-fndcl-fnexpr-map-lab-online-web-pt-061019-源码
-
基于STDP规则的忆阻神经网络在图像存储中的应用
-
OSG支持文档格式,OSG入门指南
-
moloch-2.3.0-1.x86_64.rpm
-
课堂活动21-海滩-康伯-导游-源码
-
详解本地库的使用以及原理(一)
-
Python打基础一定要吃透这68个内置函数
-
【手记】mybatis流式查询