zoukankan      html  css  js  c++  java
  • CURL处理POST、GET请求

    Curl是一个库,它允许你通过各种协议和各种不同的服务器进行连接和通讯

    a.php

    <?php
    function curlRequest($url,$data=''){
      $ch=curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//不验证证书
      if(!empty($data)){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//如果返回的不是json数组,$data要用http_build_query()处理一下
      }
      $output=curl_exec($ch);
      $errno=curl_errno($ch);
      if($errno!=0) return false;
      curl_close($ch);
      return json_decode($output,true);//将json数据转换为数组,如果不加true参数,会返回一个stdClass对象
    }
    //测试
    $url="http://www.luoqiusa.top/wx/b.php";
    $data=array('name'=>'yolo');
    $res=curlRequest($url,$data);
    print_r($res);

     输出为:

    b.php

    <?php
    if(isset($_POST['name'])){
        $jsonObj='{"name":"yolo","age":23}';
        print_r($jsonObj); //注意这里一定要输出,不能用return,低级错误
     }

    说明:主要是测试post请求,a.php请求b.php,如果b.php收到了post过来的数据,则返回一个json字符串

    知识点:

    1、$jsonObj='{"name":"yolo","age":23}';

    1. echo gettype($jsonObj);    //输出string
    2. $jsonObj=json_decode($jsonObj);
      echo gettype($jsonObj);    //输出object
    3. $jsonObj=json_decode($jsonObj,true);
      echo gettype($jsonObj);    //输出array

    简而言之,json_decode($jsonObj,true)的第二个参数true将json字符串转换为数组

    2、如果b页面返回的不是json数据,那么a页面传入的data要用http_build_query()处理一下

  • 相关阅读:
    STL unique使用问题
    自定义使用动态内存的类模板
    自定义类模板 重载<<遇到的问题
    [HDU 1882]--Strange Billboard(位运算+枚举)
    动态规划---最长上升子序列问题(O(nlogn),O(n^2))
    由结构体成员地址计算结构体地址——list_entry()原理详解
    不同意义的new和delete
    new[] 到底做了什么?
    lambda表达式与bind函数
    C++之可调用对象
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7802474.html
Copyright © 2011-2022 走看看