zoukankan      html  css  js  c++  java
  • 接口开发注意传参问题

     1 接口开发注意传参问题:
     2 
     3     php中的curl()函数进行post请求的时候,传递数据的格式可以有以下几种方式:
     4 
     5     (1):由参数拼接而成的key=>value键值对字符串。形如以下: name=xxx&age=23$sex=1
     6 
     7     这种请求参数默认是按照application/x-www-form-urlencoded进行编码的。
     8 
     9     (2):由参数组成的key=>value键值对数组(只能是一维数组,更高维度的数组会报错)。
    10 
    11     形如以下格式:
    12     [ name="xxx" , age = 23 , sex = 男 ]
    13  有两种方式可以来处理:
    14      1.将多维数组进行http_build_query()进行处理,等到一个key=>value键值对格式的字符串。
    15      $data = [
    16                   "msg"=>"这是一条测试数据",
    17                   "xxx" => "yyyy",
    18                   "msg_data" => [
    19                                   "name"=>"sui",
    20                                   "age"=>99,
    21                                   "sex"=>"男",
    22                                   "content"=>[
    23                                          1,2,3
    24                                         ]
    25                                ],
    26                ];
    27           $str =http_build_query($data);
    28 这种方式也是通过application/x-www-form-urlencoded进行编码的,在接收方可以通过$_POST直接获取29     2.将多维数组转换为json格式的字符串,对字符串进行application/json格式编码,在接收方通过file_get_contents(“php://input”)或者$GLOBALS[‘HTTP_RAW_POST_DATA']的方式获取传递过来的json格式的字符串,然后将json格式的字符串转换为数组进行处理。
    30         $data = [];
    31         $data_string = json_encode($data);
    32         .....
    33         //设置header信息
    34         curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    35                        'Content-Type: application/json',
    36                        'Content-Length: ' . strlen($data_string))
    37               );
    38 注意:对于application/json格式编码的数据,$_POST是不能直接获取的,需要通过file_get_contents(“php://input”)或者$GLOBALS[‘HTTP_RAW_POST_DATA']的方式获取。
    39  
  • 相关阅读:
    程序安装打包
    sql 2005 分页存储过程
    带线的无限级下拉树列表
    MapXtreme 2005 学习心得 概述(一)
    存储过程中用到的年,月,周的函数
    委托/事件/线程传参简单理解
    清除svn/vss小工具
    查看数据库连接数
    MapXtreme 2005 学习心得 使用WebTool工具(七)
    C#日期格式化
  • 原文地址:https://www.cnblogs.com/boundless-sky/p/6261386.html
Copyright © 2011-2022 走看看