curl 订阅
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。 展开全文
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
信息
适用范围
计算机
类    别
用URL语法
作    用
文件传输
中文名
curl
外文名
curl(CommandLine Uniform Resource Locator)
curl简介
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。curl还支持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。 [1] 
收起全文
精华内容
下载资源
问答
  • curl 模拟 GET\POST 请求,以及 curl post 上传文件

    万次阅读 多人点赞 2018-06-15 11:41:45
    curl 模拟 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 get 请求

    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 POST 上传文件

    上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件,其实这个对于 curl 来说,也是小菜一碟。

    我们用 -F "file=@__FILE_PATH__" 的请示,传输文件即可。命令如下:

    curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v
    

    执行结果如下图所示:

    curl POST 上传文件

    更多 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_get * @param $url * @param null $param * @param null $options * @return array */ function curl_get($url,$param = null,$options = null){ if(empty($options)){ $options = array( 'timeout'...

    GET案例

    /**
     * curl_get
     * @param $url
     * @param null $param
     * @param null $options
     * @return array
     */
    function curl_get($url,$param = null,$options = null){
        if(empty($options)){
            $options = array(
                'timeout' 		=> 30,// 请求超时
                'header' 		=> array(),
                'cookie' 		=> '',// cookie字符串,浏览器直接复制即可
                'cookie_file'   => '',// 文件路径,并要有读写权限的
                'ssl' 			=> 0,// 是否检查https协议
                'referer' 		=> null
            );
        }else{
            empty($options['timeout']) && $options['timeout'] = 30;
            empty($options['ssl']) && $options['ssl']	= 0;
        }
        $result = array(
            'code'      => 0,
            'msg'       => 'success',
            'body'      => ''
        );
        if(is_array($param)){
            $param = http_build_query($param);
        }
        $url = strstr($url,'?')?trim($url,'&').'&'.$param:$url.'?'.$param;
        $ch = curl_init();
    
        curl_setopt($ch,CURLOPT_URL, $url);// 设置url
        !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 设置请求头
        if(!empty($options['cookie_file']) && file_exists($options['cookie_file'])){
            curl_setopt($ch, CURLOPT_COOKIEFILE, $options['cookie_file']);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $options['cookie_file']);
        }else if(!empty($options['cookie'])){
            curl_setopt($ch, CURLOPT_COOKIE, $options['cookie']);
        }
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //curl解压gzip页面内容
        curl_setopt($ch, CURLOPT_HEADER, 0);// 不获取请求头
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 输出转移,不输出页面
        !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服务器端的验证ssl
        !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']);//伪装请求来源,绕过防盗
        curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']);
        //执行并获取内容
        $output = curl_exec($ch);
        //对获取到的内容进行操作
        if($output === FALSE ){
            $result['code'] = 1; // 错误
            $result['msg'] = "CURL Error:".curl_error($ch);
        }
        $result['body'] = $output;
        //释放curl句柄
        curl_close($ch);
        return $result;
    }
    

    POST案例

    /**
     * curl_post
     * @param $url              请求地址
     * @param null $param       get参数
     * @param array $options    配置参数
     * @return array
     */
    function curl_post($url,$param = null,$options = array()){
        if(empty($options)){
            $options = array(
                'timeout' 		=> 30,
                'header' 		=> array(),
                'cookie' 		=> '',
                'cookie_file'   => '',
                'ssl' 			=> 0,
                'referer' 		=> null
            );
        }else{
            empty($options['timeout']) && $options['timeout'] = 30;
            empty($options['ssl']) && $options['ssl']	= 0;
        }
    
        $result = array(
            'code'      => 0,
            'msg'       => 'success',
            'body'      => ''
        );
        if(is_array($param)){
            $param = http_build_query($param);
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);// 设置url
        !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 设置请求头
        if(!empty($options['cookie_file']) && file_exists($options['cookie_file'])){
            curl_setopt($ch, CURLOPT_COOKIEFILE, $options['cookie_file']);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $options['cookie_file']);
        }else if(!empty($options['cookie'])){
            curl_setopt($ch, CURLOPT_COOKIE, $options['cookie']);
        }
    
    
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //curl解压gzip页面内容
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
        curl_setopt($ch, CURLOPT_HEADER, 0);// 不获取请求头
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 输出转移,不输出页面
        !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服务器端的验证ssl
        !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']);//伪装请求来源,绕过防盗
        curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']);
        //执行并获取内容
        $output = curl_exec($ch);
        //对获取到的内容进行操作
        if($output === FALSE ){
            $result['code'] = 1; // 错误
            $result['msg'] = "CURL Error:".curl_error($ch);
        }
        $result['body'] = $output;
        //释放curl句柄
        curl_close($ch);
        return $result;
    }
    

    其他请求类型请自己参考封装处理

    展开全文
  • 遇到的问题一: 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...

      

             遇到的问题一:

        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 failed

     

           这个错误是因为项目太久,tag资源文件太大

     

           解决方式一, 网上大部分解决措施:命令终端输入 

           

            git config --global http.postBuffer 524288000

      

            用上面的命令有的人可以解决,我的还不行,需要如下方式命令,只clone深度为一

     

           $ git clone /github_com/large-repository --depth 1
           $ cd large-repository
           $ git fetch --unshallow

     

            中划线处填入的git仓库的地址。。。(我用的是http方式,不是ssh)

     

              解决方式二,一般clone http方式的容易产生此问题,改成SSH的方式也有效,即https://改为git://

     

     

       遇到的问题二:

        warning: templates not found /usr/local/git/share/git-core/templates

        

          在终端输入 
          open /usr/local/
         在打开的目录中可以看到:
         如果没有 git 目录
        打开下面的地址,下载 git-osx 并安装,
         http://git-scm.com/download/mac 

         如果有 git 目录
         并且相应的 share,git-core,templates 目录都有,,说明是权限的问题.

         在终端输入:
         sudo chmod -R 755 /usr/local/git/share/git-core/templates
         注意 sudo 创建目录需要输入当前 Mac 用户的密码
         最后重新 clone 项目

        

     

        以上问题是我在Mac电脑用xcode自带git、sourcetree、终端三个方式clone某个项目都不能成功克隆下来。

       遇到的问题,其他项目都可以。

     

     

     

       相关拓展博客地址:

         http://www.jianshu.com/p/0e3421961db4

         http://blog.csdn.net/h5q8n2e7/article/details/46919579

     

     

    展开全文
  • cURL实战教程

    万人学习 2017-08-24 17:36:05
    由King老师精心打造cURL实战课程,由浅入深的讲解了cURL中常见的API,及cURL在实际开发中的应用,实现了模拟登陆、文件上传下载、多线程cURL等。通过cURL可以操作各种网络资源! 山哥出品,必属精品!
  • curl安装

    万次阅读 2018-06-28 10:57:41
    1、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:45
    curl获取本机外网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:48
    PHP Curl调用接口时,如果 url 地址是 NULL 类型,那么调用curl_error() 方法将会 返回malformed
  • curl命令模拟json格式的post请求

    万次阅读 2017-09-06 08:48:57
    curl命令 模拟json格式的post请求测试接口 curl -H "Content-Type:application/json" -X POST --data '
  • 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:03
    curl是一种命令行工具,支持多种协议,作用是发出网络请求,然后得到和提取数据,显示在stdout上面。 在服务器端,使用curl查看请求地址是否返回数据来判断是nginx配置问题还是程序服务配置问题不失为一种好方式...
  • 这篇文章主要介绍了PHP中使用CURL之php curl详细解析和常见大坑 ,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 七夕啦,作为开发,妹子没得撩就“撩”下服务器吧,妹子有得撩的同学那就左拥妹子...
  • curl命令详解 (curl -I)

    万次阅读 2019-07-30 11:30:47
    curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面列举其常用功能。 一、查看网页源码 直接在 curl 命令后加上网址,就可以看到网页源码。以网址...
  • Linux中curl命令详解

    万次阅读 2019-03-11 15:26:35
    curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。 https://curl.haxx.se/ 这是curl的官网。可以从上面的官网地址下载最新的curl版本。同时可以在官网看出curl支持的各种协议...
  • java中怎么使用curl,java中怎么使用curl,java中怎么使用curl
  • 其实就是更新一下版本就可以了。 下载curl包(可以在这个网站上找最新的版本 http://curl.haxx.se/download/) ...tar -xzvf curl-7.55.1.tar.gz cd curl-7.55.1 ./configure make mak...
  • Tool之curlcurl的简介、安装、使用方法之详细攻略 curl的简介 curl是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL...
  • Curl 显示下载速度等详情

    万次阅读 2020-04-01 11:23:56
    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_pretransfe...
  • Linux curl 命令模拟 POST/GET 请求

    万次阅读 多人点赞 2018-08-28 23:38:14
    curl 命令,是一个利用URL规则在命令行下工作的文件传输工具。 curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。 作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,...
  • curl乱码

    千次阅读 2018-02-08 14:21:03
    curl url返回的内容乱码 使用iconv命令可以解决乱码问题 curl url|iconv -f gb2312 -t utf8iconv -f(rom)指定来源编码,-t(o)转化的编码 -f fromcodeset Identify the codeset of the input file. The ...
  • [命令行] curl查询公网出口IP

    万次阅读 2016-07-22 14:27:02
    不管是在家里还是办公室,或者是公司的主机,很多时候都是在内网中,也就是说很多都是通过 NAT上网的,有时候需要查询下出口的公网IP,如果有浏览器,可以...liuzhizhi@lzz-rmbp|logs # curl ipinfo.io { "ip": "114.
  • curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused的几种解决方式? 前言: 最近随着flutter的发布,多数公司都开始...curl: (7) Failed to connect to raw.githubuserconten

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,532
精华内容 41,412
关键字:

curl