curl_curlftpfs - CSDN
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常用命令行总结

    千次阅读 2019-07-02 22:08:26
    curl 有时HTTP服务接口写完,需要验证下接口功能,这个使用用curl最合适了 curl 全称 command line url viewer curl www.taobao.com curl www.baidu.com # 站点内容 curl -o baidu.html www.baidu.com # 文件保存 ...

    curl

    有时HTTP服务接口写完,需要验证下接口功能,这个使用用curl最合适了

    curl 全称 command line url viewer

    curl www.taobao.com

    curl www.baidu.com # 站点内容

    curl -o baidu.html www.baidu.com # 文件保存

    curl -L www.taobao.com # 存在跳转时可以用L参数

    curl -i www.sina.com # 显示头信息 + 内容

    curl -I www.taobao.com # 只显示头

    curl -v www.taobao.com # 显示通信过程

    curl --trace output.text www.taobao.com # 显示二进制细节

    curl --trace-ascii output.text www.taobao.com # 显示ascii细节

    form 提交

    -X 这个参数可以配置HTTP的方法

    curl -X POST 127.0.0.1:7001/api/material/update

    curl -X POST --data "name=kk&name2=gg" 127.0.0.1:7001/api/material/create # 带参数的post提交

    其他

    curl --referer http://www.example.com http://www.example.com # referer

    curl —user-agent “userAgent” www.taobao.com

    curl --header "Content-Type:application/json" http://example.com # 添加头

    curl -c cookie_output http://example.com # 保存cookie

    curl -b cookies_input http://example.com # 使用cookie file 发请求

    转载于:https://www.cnblogs.com/xiaoniuzai/p/7240031.html

    展开全文
  • curl介绍与常见用法

    万次阅读 2019-08-30 17:00:25
    本文主要介绍curl的相关知识及其常见用法。 1. 概述 1.1 what curl is a command line tool and library for transferring data with URLs. 1.2 What's curl used for curl is used in command lines or ...

    本文主要介绍curl的相关知识及其常见用法。

    1. 概述

    1.1 what

    curl is a command line tool and library for transferring data with URLs.

    1.2 What's curl used for

    curl is used in command lines or scripts to transfer data. 

    curl is also used in cars, television sets, routers, printers, audio equipment, mobile phones, tablets, settop boxes, media players and is the internet transfer backbone for thousands of software applications affecting billions of humans daily.

    1.3 curl supports

    curl 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.

    2. 常见用法

    2.1 获取页面

    用法:curl URL

    示例如下:

    curl https://www.baidu.com/

    这是curl最简单的使用方法,运行上面的命令可以获取 https://www.baidu.com/ 指向的页面,同样,如果这里的 URL 指向的是一个文件或者一幅图,都可以直接下载到本地。

    2.2 发送POST请求

    用法:curl -X POST -d 'post content' URL

    -X 选项解释如下:

    -X/--request <command>
          (HTTP) Specifies a custom request method to use when communicating with the HTTP 
    server.  The specified request will be used instead of the method otherwise used (which 
    defaults to GET). Read the HTTP 1.1 specification for details and explanations.
          (FTP) Specifies a custom FTP command to use instead of LIST when doing file lists 
    with ftp.
          If this option is used several times, the last one will be used.

    -d 选项解释如下:

    -d/--data <data>
          (HTTP) Sends the specified data in a POST request to the HTTP server, in a way that 
    can emulate as if a user has filled in a HTML form and pressed the submit button. Note that 
    the data is sent exactly as specified with no extra processing (with all newlines cut off). 
    The data is expected to be "url-encoded". This will cause curl to pass the data to the 
    server using the content-type application/x-www-form-urlencoded. Compare to -F/--form. If 
    this option is used more than once on the same command line, the data pieces specified will 
    be merged together with a separating &-letter. Thus, using '-d name=daniel -d skill=lousy' 
    would generate a post chunk that looks like 'name=daniel&skill=lousy'.

    示例如下:

    curl -X -d 'api_ver=1.0.0&merchant_id=1800257711' http://api.gcdev.tfb8.com/cgi-bin/v2.0/api_merchant_agency_qry.cgi

    注意:-d 选项后的内容强烈建议用单引号'包含起来,而非双引号。

    2.3 发送GET请求

    用法:curl URL?param1=value1\&param2=value2...

    示例如下

    curl http://api.gcdev.tfb8.com/cgi-bin/v2.0/api_merchant_agency_qry.cgi?api_ver=1.0.0\&merchant_id=1800257711

    注意:在 shell 中执行 curl 命令,发送 GET 请求时,如果要发送多个参数,则需要将参数之间的分隔符“&”修改为“\&”,否则 shell 会将分隔符“&”理解为后台执行指令,导致 GET 请求参数被截断。

    2.4 链接重定向/自动跳转(-L)

    使用 curl 打开某些被重定向的链接时,可能无法获取我们想要的网页内容。假设有链接 http://www.A.com,使用浏览器访问该链接,会自动跳转到链接 http://www.B.com。那么如果使用 curl 直接访问A链接,如下:

    curl http://www.A.com

    会提示A链接不存在,因为A链接已经重定向到B链接了,但是 curl 没能识别出来(这个改动)。

    此时,就需要使用 -L 选项了。使用“curl -L”可以使 curl 打开的链接自动跳转,获取到最终的网页。如下:

    curl -L http://www.A.com

    使用上面的命令访问链接A时,就会自动跳转到其重定向的链接B中,最终获取到链接B的内容。

    2.5 将页面响应写入文件(-o)

    使用 curl 将网页的响应消息写入到一个文件中,可以“-o”选项,如下:

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    上面的命令会将链接 http://mirrors.aliyun.com/repo/Centos-7.repo 的内容响应信息,写入到 /etc/yum.repos.d/CentOS-Base.repo 文件中。

     

    展开全文
  • curl命令详解

    万次阅读 2018-06-21 09:00:07
    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是...语法:# curl [option] [url]常见参数:-A/--user-agent &lt;string&gt;...

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

    语法:# curl [option] [url]

    常见参数:

    -A/--user-agent <string> 设置用户代理发送给服务器

    -b/--cookie <name=string/file>    cookie字符串或文件读取位置
    -c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
    -C/--continue-at <offset>            断点续转
    -D/--dump-header <file>              把header信息写入到该文件中
    -e/--referer                                  来源网址
    -f/--fail                                          连接失败时不显示http错误
    -o/--output                                  把输出写到该文件中
    -O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
    -r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
    -s/--silent                                    静音模式。不输出任何东西
    -T/--upload-file <file>                  上传文件
    -u/--user <user[:password]>      设置服务器的用户和密码
    -w/--write-out [format]                什么输出完成后
    -x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
    -#/--progress-bar                        进度条显示当前的传送状态


    curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

    它支持多种协议,下面举例讲解如何将它用于网站开发。

    一、查看网页源码

    直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短):

      $ curl www.sina.com

      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <html><head>
      <title>301 Moved Permanently</title>
      </head><body>
      <h1>Moved Permanently</h1>
      <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
      </body></html>

    如果要把这个网页保存下来,可以使用`-o`参数,这就相当于使用wget命令了。

      $ curl -o [文件名] www.sina.com

    二、自动跳转

    有的网址是自动跳转的。使用`-L`参数,curl就会跳转到新的网址。

      $ curl -L www.sina.com

    键入上面的命令,结果就自动跳转为www.sina.com.cn。

    三、显示头信息

    `-i`参数可以显示http response的头信息,连同网页代码一起。

      $ curl -i www.sina.com

      HTTP/1.0 301 Moved Permanently
      Date: Sat, 03 Sep 2011 23:44:10 GMT
      Server: Apache/2.0.54 (Unix)
      Location: http://www.sina.com.cn/
      Cache-Control: max-age=3600
      Expires: Sun, 04 Sep 2011 00:44:10 GMT
      Vary: Accept-Encoding
      Content-Length: 231
      Content-Type: text/html; charset=iso-8859-1
      Age: 3239
      X-Cache: HIT from sh201-9.sina.com.cn
      Connection: close

      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <html><head>
      <title>301 Moved Permanently</title>
      </head><body>
      <h1>Moved Permanently</h1>
      <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
      </body></html>

    `-I`参数则是只显示http response的头信息。

    四、显示通信过程

    `-v`参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。

      $ curl -v www.sina.com

      * About to connect() to www.sina.com port 80 (#0)
      * Trying 61.172.201.195... connected
      * Connected to www.sina.com (61.172.201.195) port 80 (#0)
      > GET / HTTP/1.1
      > User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
      > Host: www.sina.com
      > Accept: */*
      > 
      * HTTP 1.0, assume close after body
      < HTTP/1.0 301 Moved Permanently
      < Date: Sun, 04 Sep 2011 00:42:39 GMT
      < Server: Apache/2.0.54 (Unix)
      < Location: http://www.sina.com.cn/
      < Cache-Control: max-age=3600
      < Expires: Sun, 04 Sep 2011 01:42:39 GMT
      < Vary: Accept-Encoding
      < Content-Length: 231
      < Content-Type: text/html; charset=iso-8859-1
      < X-Cache: MISS from sh201-19.sina.com.cn
      < Connection: close
      < 
      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <html><head>
      <title>301 Moved Permanently</title>
      </head><body>
      <h1>Moved Permanently</h1>
      <p>The document has moved <a href="http://www.sina.com.cn/">here</a>.</p>
      </body></html>
      * Closing connection #0

    如果你觉得上面的信息还不够,那么下面的命令可以查看更详细的通信过程。

      $ curl --trace output.txt www.sina.com

    或者

      $ curl --trace-ascii output.txt www.sina.com

    运行后,请打开output.txt文件查看。

    五、发送表单信息

    发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面就行。

      $ curl example.com/form.cgi?data=xxx

    POST方法必须把数据和网址分开,curl就要用到--data参数。

      $ curl -X POST --data "data=xxx" example.com/form.cgi

    如果你的数据没有经过表单编码,还可以让curl为你编码,参数是`--data-urlencode`。

      $ curl -X POST--data-urlencode "date=April 1" example.com/form.cgi

    六、HTTP动词

    curl默认的HTTP动词是GET,使用`-X`参数可以支持其他动词。

      $ curl -X POST www.example.com

      $ curl -X DELETE www.example.com

    七、文件上传

    假定文件上传的表单是下面这样:

      <form method="POST" enctype='multipart/form-data' action="upload.cgi">
        <input type=file name=upload>
        <input type=submit name=press value="OK">
      </form>

    你可以用curl这样上传文件:

      $ curl --form upload=@localfilename --form press=OK [URL]

    八、Referer字段

    有时你需要在http request头信息中,提供一个referer字段,表示你是从哪里跳转过来的。

      $ curl --referer http://www.example.com http://www.example.com

    九、User Agent字段

    这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。

    iPhone4的User Agent是

      Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7

    curl可以这样模拟:

      $ curl --user-agent "[User Agent]" [URL]

    十、cookie

    使用`--cookie`参数,可以让curl发送cookie。

      $ curl --cookie "name=xxx" www.example.com

    至于具体的cookie的值,可以从http response头信息的`Set-Cookie`字段中得到。

    `-c cookie-file`可以保存服务器返回的cookie到文件,`-b cookie-file`可以使用这个文件作为cookie信息,进行后续的请求。

      $ curl -c cookies http://example.com
      $ curl -b cookies http://example.com

    十一、增加头信息

    有时需要在http request之中,自行增加一个头信息。`--header`参数就可以起到这个作用。

      $ curl --header "Content-Type:application/json" http://example.com

    十二、HTTP认证

    有些网域需要HTTP认证,这时curl需要用到`--user`参数。

      $ curl --user name:password example.com

    展开全文
  • curl

    2020-03-13 09:56:42
    也就是说curl就是一个工具,用来做服务器之间数据、文件传输的工具 用来采集网络中的html网页文件、其他服务器提供接口数据等 开启curl扩展 (1)在php.ini里面开启curl这个扩展 (2)将PHP的安装路径保存到...

    curl是PHP的一个扩展,利用该扩展可以实现服务器之间的数据或文件传输

    也就是说curl就是一个工具,用来做服务器之间数据、文件传输的工具

    用来采集网络中的html网页文件、其他服务器提供接口数据等

     开启curl扩展

    (1) 在php.ini里面开启curl这个扩展

    (2) 将PHP的安装路径保存到环境变量的系统变量中(环境变量之间的分隔符是英文的分号)

    (3) 重启apache服务器

    (4) 重启计算机

     

    curl的一些常用配置项

     

    (1) 通过CURLOPT_RETURNTRANSFER配置项设置,是直接显示结果(echo)还是将结果返回(return)

     

     

     

    (2) 针对https协议的请求,需要验证客户端的安全证书,通常都会跳过安全证书的验证

     

     

     

    (3) CURLOPT_HEADER是否返回header头信息

     

     

    封装的一个curl方法1:

    复制代码

    <?php
    /*
     * 使用curl扩展发出http的get或post请求
     */
    class HttpRequest
    {
        //url,请求的服务器地址
        private $url = '';
        
        //is_return,是否返回结果而不是直接显示
        private $is_return = 1;
        
        public function __set($p,$v)
        {
            if(property_exists($this, $p)){
                $this->$p = $v;
            }
        }
        // 发出http请求的方法
        //参数:提交的数据,默认是空的
        public function send($data = array())
        {
            //1. 如果传递数据了,说明向服务器提交数据(post),如果没有传递数据,认为从服务器读取资源(get)
            $ch = curl_init();
            
            //2. 不管是get、post,跳过证书的验证
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            
            //3. 设置请求的服务器地址
            curl_setopt($ch, CURLOPT_URL, $this->url);
            
            //4. 判断是get还是post
            if(!empty($data)){
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            }
            //5. 是否返回数据
            if($this->is_return===1){
                //说明返回
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $result = curl_exec($ch);
                curl_close($ch);
                return $result;
            }else{
                //直接输出
                curl_exec($ch);
                curl_close($ch);
            }
        }
    }

    复制代码

    封装的一个curl方法2:

    复制代码

     1 //curl采集器
     2 public function http_curl($url,$type='get',$res='json',$arr=''){
     3 //1.初始化curl
     4 $ch=curl_init();
     5 //2.设置curl的参数
     6 curl_setopt($ch,CURLOPT_URL,$url);
     7 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
     8   if($type=='post'){
     9     curl_setopt($ch,CURLOPT_POST,1);
    10     curl_setopt($ch,CURLOPT_POSTFIELDS,$arr);
    11   }
    12 //3.采集
    13 $output=curl_exec($ch);
    14 //4.关闭
    15 curl_close($ch);
    16 //如果返回的值,是json格式,则转换成数组
    17 if($res=='json'){
    18   if(curl_errno($ch)){
    19     //请求失败,返回错误信息
    20     return curl_error($ch);
    21   }else{
    22     //请求成功
    23   return json_decode($output,true);
    24 }
    25 }
    26 }//http_curl end

    复制代码

    curl模拟文件上传

     

    说明:PHP5.6之前的版本上传文件使用:@

     

    Php5.6之后的版本使用new CURLFile()

     

    这样其他服务器接收到数据之后,就可以移动了

     curl模拟cookie登录

     

    (1) 我们访问服务器时,服务器会先在服务器端创建一个session文件,保存用户的信息,便于在多个页面共享数据,然后服务器会以setcookie的形式告诉客户端在自己身上创建cookie,保存session文件的名,以前使用浏览器访问服务器的时候,浏览器会在自己身上创建cookie文件,现在使用我们的服务器访问:cookie保存到哪里?
    CURLOPT_COOKIEJAR配置项设置,cookie保存到哪里

    (2) 以后再访问服务器的时候,随身携带cookie(里面就是存储的session文件的名字),那么怎么找到这个cookie呢?

    CURLOPT_COOKIEFILE 配置项设置,每次请求时携带哪个cookie文件

     

     

     

     

    PHP使用CURL详解

    CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。

    使用CURL发送请求的基本流程

    使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:

    1. 初始化连接句柄;
    2. 设置CURL选项;
    3. 执行并获取结果;
    4. 释放VURL连接句柄。

    下面的程序片段是使用CURL发送HTTP的典型过程

    复制代码

    复制代码

    // 1. 初始化
     $ch = curl_init();
     // 2. 设置选项,包括URL
     curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net");
     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
     curl_setopt($ch,CURLOPT_HEADER,0);
     // 3. 执行并获取HTML文档内容
     $output = curl_exec($ch);
     if($output === FALSE ){
     echo "CURL Error:".curl_error($ch);
     }
     // 4. 释放curl句柄
     curl_close($ch);

    复制代码

    复制代码

    上述代码中使用到了四个函数

    • curl_init() 和 curl_close() 分别是初始化CURL连接和关闭CURL连接,都比较简单。
    • curl_exec() 执行CURL请求,如果没有错误发生,该函数的返回是对应URL返回的数据,以字符串表示满意;如果发生错误,该函数返回 FALSE。需要注意的是,判断输出是否为FALSE用的是全等号,这是为了区分返回空串和出错的情况。
    • CURL函数库里最重要的函数是curl_setopt(),它可以通过设定CURL函数库定义的选项来定制HTTP请求。上述代码片段中使用了三个重要的选项:
      1. CURLOPT_URL 指定请求的URL;
      2. CURLOPT_RETURNTRANSFER 设置为1表示稍后执行的curl_exec函数的返回是URL的返回字符串,而不是把返回字符串定向到标准输出并返回TRUE;
      3. CURLLOPT_HEADER设置为0表示不返回HTTP头部信息。

    CURL的选项还有很多,可以到PHP的官方网站(http://www.php.net/manual/en/function.curl-setopt.php)上查看CURL支持的所有选项列表。

    获取CURL请求的输出信息

    在curl_exec()函数执行之后,可以使用curl_getinfo()函数获取CURL请求输出的相关信息,示例代码如下:

    curl_exec($ch);
    $info = curl_getinfo($sh);
    echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

    上述代码中curl_getinfo返回的是一个关联数组,包含以下数据:

    • url:网络地址。
    • content_type:内容编码。
    • http_code:HTTP状态码。
    • header_size:header的大小。
    • request_size:请求的大小。
    • filetime:文件创建的时间。
    • ssl_verify_result:SSL验证结果。
    • redirect_count:跳转计数。
    • total_time:总耗时。
    • namelookup_time:DNS查询耗时。
    • connect_time:等待连接耗时。
    • pretransfer_time:传输前准备耗时。
    • size_uplpad:上传数据的大小。
    • size_download:下载数据的大小。
    • speed_download:下载速度。
    • speed_upload:上传速度。
    • download_content_length:下载内容的长度。
    • upload_content_length:上传内容的长度。
    • starttransfer_time:开始传输的时间表。
    • redirect_time:重定向耗时。

    curl_getinfo()函数还有一个可选择参数$opt,通过这个参数可以设置一些常量,对应到上术这个字段,如果设置了第二个参数,那么返回的只有指定的信息。例如设置$opt为CURLINFO_TOTAL_TIME,则curl_getinfo()函数只返回total_time,即总传输消耗的时间,在只需要关注某些传输信息时,设置$opt参数很有意义。

    使用CURL发送GET请求

    如何使用CURL来发送GET请求,发送GET请求的关键是拼装格式正确的URL。请求地址和GET数据由一个“?”分割,然后GET变量的名称和值用“=”分隔,各个GET名称和值由“&”连接。PHP为我们提供了一个函数专门用来拼装GET请求和数据部分——http_build_query,该函数接受一个关联数组,返回由该关联数据描述的GET请求字符串。使用这个函数,结合CURL发送HTTP请求的一般流程,我们封闭了一个发送GET请求的函数——doCurlGetRequest,具体代码如下:

    复制代码

    复制代码

    **
     *@desc 封闭curl的调用接口,get的请求方式。
    */
    function doCurlGetRequest($url,$data,$timeout = 5){
     if($curl == "" || $timeout <= 0){
     return false;
     }
     $url = $url.'?'.http_bulid_query($data);
     $con = curl_init((string)$url);
     curl_setopt($con, CURLOPT_HEADER, false);
     curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
     curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
     
     return curl_exec($con);
    }

    复制代码

    复制代码

    这个函数把使用http_build_query 拼装好的带GET参数的URL传给curl_init函数,然后使用CURL发送HTTP请求。

    使用CURL发送POST请求

    可以使用CURL提供的选项CURLOPT_POSTFIELDS,设置该选项为POST字符串数据就可以把请求放在正文中。同样我们实现了一个发送POST请求的函数——doCurlPostRequest,代码如下:

    复制代码

    复制代码

    /**
    ** @desc 封装 curl 的调用接口,post的请求方式
    **/
    function doCurlPostRequest($url,$requestString,$timeout = 5){
     if($url == '' || $requestString == '' || $timeout <=0){
     return false;
     }
     $con = curl_init((string)$url);
     curl_setopt($con, CURLOPT_HEADER, false);
     curl_setopt($con, CURLOPT_POSTFIELDS, $requestString);
     curl_setopt($con, CURLOPT_POST,true);
     curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
     curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout);
     return curl_exec($con); 
    }

    复制代码

    复制代码

    上面代码中除了设置CURLOPT_POSTFIELDS外,我们还设置了CURL_POST为true,标识这个请求是一个POST请求。在POST请求中也是可以传输GET数据的,只需要在URL中拼装GET请求数据即可。

     

     

    https://www.cnblogs.com/lxj0205/p/9360826.html

    展开全文
  • curl 使用详解

    万次阅读 2015-05-14 10:52:53
    cURL.1 手册页 名称 cURL - transfer a URL 摘要 cURL[选项] [URL... ] 描述 cURL 是一个向服务器或从服务器传输数据的工具,它支持HTTP 、HTTPS、 FTP 、FTPS 、SCP、SFTP、TFTP、DICT、...
  • CURL 是什么

    千次阅读 2018-05-08 15:18:16
    cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。 它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。 cURL还包含了用于程序开发的libcurl。cURL支持的通信协议有...
  • curl 命令

    万次阅读 2018-07-20 00:14:57
    -X/--request 参数 -d/--data 参数 -H/--header 参数 -c/--cookie-jar 参数 -b/--cookie 参数 -F/--form /--form-string 参数 -O/--remote-name -o/--output -s/--silent 命令 -i/--include -I/--head ...
  • curl 命令参数详解

    万次阅读 2018-06-08 16:35:51
    curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST...
  • 在本教程中,我们介绍cURL的基本选项,并通过示例介绍如何使用它们,然后我们开发了一个带有三个端点的Node/Express服务器,以演示如何使用本文介绍的cURL选项对服务器执行cURL的GET/POST请求。 与cURL一起使用的...
  • linux通过curl方式调用接口

    万次阅读 2019-11-28 18:51:58
    今天遇到个需求,linux上将txt文件导入数据库,需要监测txt中的数据是否完全导入了数据库,即txt中的行数是否和数据库...经过mentor指点,可以反过来,让linux上使用指令调用我的java应用即可,即使用curl指令调用j...
  • 强大的curl命令的介绍和一般用法

    万次阅读 多人点赞 2017-09-23 09:42:58
    curl,全称CommandLine URL 或 CommandLine Uniform Resource Locator,顾名思义,curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。 这个命令行工具现在多用于Unix和Linux操作系统,是一...
  • curl 一下

    千次阅读 2019-07-02 16:08:45
    curl可以模拟各种请求协议向服务端发送请求,是一个很好用的接口测试命令行工具。 一、其参数说明如下 -X/--request :指定请求的方法,如 [GET|POST|PUT|DELETE|…]-H/--header :设置请求头 ,如 "Content-Type:...
  • curl使用

    2020-09-08 14:22:23
    curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 curl https://www.baidu.com <!DOCTYPE html> <!--STATUS OK--><html> <head><meta...
  • 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命令获取本机外网IP

    万次阅读 2019-08-28 10:40:24
    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 取得HTTP返回的状态码

    万次阅读 2016-09-20 18:26:32
    shell curl 取得HTTP返回的状态码
  • curl 发送json格式数据 请求

    万次阅读 2018-03-05 18:37:42
    curl -H "Content-Type: application/json" -X POST --data '{"userID":10001}' http://localhost:8085/GetUserInfo
  • curl的超时时间设置

    万次阅读 2012-02-13 11:03:39
    使用curl时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间。 连接超时时间用 --connect-timeout 参数来指定,数据传输的最大允许时间用 -m 参数来指定。 例如: curl --connect-...
  • java中怎么使用curl,java中怎么使用curl,java中怎么使用curl
  • 执行curl命令时,会返回这样的统计信息 如何关闭这个统计信息的显示? -----使用curl的-s 选项即可
1 2 3 4 5 ... 20
收藏数 263,788
精华内容 105,515
关键字:

curl