zoukankan      html  css  js  c++  java
  • php 通过curl post发送json数据实例

    例1

     代码如下 复制代码

    $data = array("name" => "Hagrid", "age" => "36");                                                                   
    $data_string = json_encode($data);                                                                                  
     
    $ch = curl_init('http://api.local/rest/users');                                                                     
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                     
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                         
        'Content-Type: application/json',                                                                               
        'Content-Length: ' . strlen($data_string))                                                                      
    );                                                                                                                  
     
    $result = curl_exec($ch);

    例2

     代码如下 复制代码

       function http_post_data($url, $data_string) {

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen($data_string))
            );
            ob_start();
            curl_exec($ch);
            $return_content = ob_get_contents();
            ob_end_clean();

            $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            return array($return_code, $return_content);
        }

    $url  = "http://xx.xx.cn";
    $data = json_encode(array('a'=>1, 'b'=>2));

    list($return_code, $return_content) = http_post_data($url, $data);

    例3

     代码如下 复制代码

    $data=' {
         "button":[
         {    
              "type":"click",
              "name":"今日歌曲",
              "key":"V1001_TODAY_MUSIC"
          },
          {
               "type":"click",
               "name":"歌手简介",
               "key":"V1001_TODAY_SINGER"
          },
          {
               "name":"菜单",
               "sub_button":[
                {
                   "type":"click",
                   "name":"hello word",
                   "key":"V1001_HELLO_WORLD"
                },
                {
                   "type":"click",
                   "name":"赞一下我们",
                   "key":"V1001_GOOD"
                }]
           }]
     }';

    $ch = curl_init($urlcon); //请求的URL地址
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//$data JSON类型字符串
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
    $data = curl_exec($ch);
    print_r($data);//创建成功返回:{"errcode":0,"errmsg":"ok"}

    小结,我们发现最核心的一句代码就是Content-Type: application/json;这个是文件格式类型了。

  • 相关阅读:
    ABA问题怎么解:AtomicStampedReference和AtomicMarkableReference
    原子类型累加器
    Spring Boot使用嵌入式容器,那怎么配置自定义Filter呢
    痞子衡嵌入式:语音处理工具pzh-speech诞生记
    痞子衡嵌入式:串口调试工具pzh-com诞生记(6)- 打包发布(PyInstaller3.3.1)
    痞子衡嵌入式:串口调试工具pzh-com诞生记(5)- 软件优化
    痞子衡嵌入式:串口调试工具pzh-com诞生记(4)- 联合调试(vspd, sscom, PyCharm2018.2)
    痞子衡嵌入式:串口调试工具pzh-com诞生记(3)- 串口功能实现(pySerial)
    痞子衡嵌入式:串口调试工具pzh-com诞生记(2)- 界面构建(wxFormBuilder3.8.0)
    痞子衡嵌入式:极易上手的可视化wxPython GUI构建工具(wxFormBuilder)
  • 原文地址:https://www.cnblogs.com/roam/p/3583086.html
Copyright © 2011-2022 走看看