zoukankan      html  css  js  c++  java
  • CURL 支持 GET、PUT、POST、DELETE请求

    一个方法解决所有的 curl 请求的问题。

    <?php

    function curlTypeData( $method, $url, $data=false, $json=false )
    {
      $dataString = $json ? json_encode( $data ) : http_build_query( $data );
      $ch = curl_init(); // 启动一个 CURL 请求
      curl_setopt( $ch, CURLOPT_URL, $url ); // 确定要请求的地址
      curl_setopt( $ch, CURLOPT_HEADER, 0); // 是否显示返回的 Header 区域内容
      curl_setopt( $ch, CURLINFO_HEADER_OUT, true ); // 获取请求头信息
      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
      curl_setopt( $ch, CURLOPT_TIMEOUT, 5 ); // 请求过期时间
      // curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
      // curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查

      // 判断要执行的 CURL 的请求方式
      $method = strtoupper( $method );
      switch ( $method ) {
        case 'GET':
          curl_setopt( $ch, CURLOPT_HTTPGET, true ); // 设置请求方式为 GET
          break;
        case 'POST':
          curl_setopt( $ch, CURLOPT_POST, true ); // 设置请求方式为 POST
          curl_setopt( $ch, CURLOPT_POSTFIELDS, $dataString );// 设置请求体,提交数据包
          break;
        case 'PUT':
          curl_setopt( $ch, CURLOPT_PUT, true ); // 设置请求方式为 PUT
          // curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'PUT' );// 设置请求方式为 PUT
          curl_setopt( $ch, CURLOPT_POSTFIELDS, $dataString );//设置请求体,提交数据包
          break;
        case 'DELETE':
          curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'DELETE' );// 设置请求方式为 DELETE
          break;
        default:
          echo "不存在请求方式";
          die();
      }

      // 判断是否要求 json
      if ( $json ) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          'Content-Type: application/json; charset=utf-8',
          'Content-Length: ' . strlen($dataString))
        );
      }

      // 执行操作
      $output = curl_exec( $ch ); // 执行操作
      // $code = curl_getinfo( $ch, CURLINFO_HTTP_CODE ); // 获取返回的状态码
      curl_close($ch); // 关闭CURL会话
      echo $output;
    }

    ?>

  • 相关阅读:
    给XML文件定义DTD
    详探TextRange对象用execCommand()执行命令
    获取屏幕,浏览器,网页高度宽度
    花点时间搞清top、postop、scrolltop、scrollHeight、offsetHeight
    DataView数据组件
    回调实现无刷新级联下拉框(.net)
    ASP.NET的简单数据绑定
    详探TextRange对象查找与选择
    方维系统常用的jquery库以及各个库的含义
    方维购物分享系统 给店铺品牌加喜欢收藏的功能
  • 原文地址:https://www.cnblogs.com/laowenBlog/p/8616118.html
Copyright © 2011-2022 走看看