首页 > 编程语言 >php Post请求

php Post请求

时间:2023-11-24 15:33:08浏览次数:22  
标签:jsonStr returnContent ch 请求 url json Post php curl

在php调用一个 Post请求接口

/**
 * PHP发送Json对象数据
 *
 * @param $url 请求url
 * @param $jsonStr 发送的json字符串   charset=utf-8
 * @return array
 */
function http_post_json($url, $jsonStr)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json;charset=utf-8',
            'Content-Length: ' . strlen($jsonStr)
        )
    );
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
 
    return array($httpCode, $response);
}

/**
 * PHP发送 Post请求
 *
 * @param $url 请求url
 * @param $jsonStr  
 * @return array
 */
function http_post($url, $jsonStr)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST,true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     
    $response = curl_exec($ch);
 
    curl_close($ch);
 
    return array($httpCode, $response);
}

调用方法

一、JSON方式请求 

    //请求 接口  --------------------------------------------------------------------
    $url = "http://111.110.196.159:11585/cdrl/api/mobile/ABCHouse.act";
    //$jsonStr = json_encode(array('tel' => '13478956906', 'companyNo' => '040000'));
    $jsonStr = json_encode(array('tel' => $Tel, 'companyNo' => $CompanyNo ));
    list($returnCode, $returnContent) = http_post_json($url, $jsonStr);
    WriteLog("$LogParm 请求接口 返回码:".$returnCode."  参数:" .$jsonStr."  返回值:" .$returnContent );

    //请求失败---- 返回码 不为200 则 认为 请求失败----------
    if($returnCode!="200"){    
        $arr_result['action']='Action_Hangup';
        WriteLog("$LogParm ". "请求接口失败 " . $returnCode ." $url   $jsonStr " );
        WriteLog("$LogParm 返回值 " .json_encode($arr_result));
        echo json_encode($arr_result );
        exit(0);
    }

    //分析 returnContent
    $obj_returnContent= json_decode($returnContent);//JSON转为object对象
    if($obj_returnContent->message=="find the data"){
    $arr_data = object_array($obj_returnContent->data);//JSON转为数组  
        $data_count = count($arr_data);//数组的长度
        //WriteLog("是否  returnContent 为 ". $arr_data[0]['address'] ." " .$data_count ." " );

     for($i=0;$i<$data_count;$i++){
       $num=$i+1;
       $play_content=$play_content .'。'.$num .",". $arr_data[$i]['address'];
     }

   }

二、Post方式请求

   $url = "http://111.111.24.15/lyyl/callcenter/api/external/getAbbbbt.act";  
   $jsonStr = array('callid' => $Tel );
list($returnCode, $returnContent) = http_post($url, json_encode($jsonStr));
WriteLog("$LogParm 请求 接口 返回码:".$returnCode." 返回值:" .$returnContent." 参数:" .json_encode($jsonStr) );

 

标签:jsonStr,returnContent,ch,请求,url,json,Post,php,curl
From: https://www.cnblogs.com/hailexuexi/p/17853855.html

相关文章

  • IDEA插件推荐:Apipost-Helper
    今天给大家推荐一款IDEA插件:Apipost-Helper-2.0,写完代码IDEA内一键生成API文档,无需安装、打开任何其他软件;写完代码IDEA内一键调试,无需安装、打开任何其他软件;生成API目录树,双击即可快速定位API定义的代码…非常好用!而且完全免费!在IDEA编辑器插件中心输入Apipost搜索安装:Apipost-......
  • IDEA中的Postman?完全免费!
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipost......
  • postgresql从入门到精通 - 第35讲:中间件PgBouncer部署|PostgreSQL教程
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第35讲:中间件PgBouncer部署11月25日(周六)19:30-20:30,往期......
  • IDEA中的Postman?完全免费!
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipos......
  • IDEA插件推荐:Apipost-Helper
    今天给大家推荐一款IDEA插件:Apipost-Helper-2.0,写完代码IDEA内一键生成API文档,无需安装、打开任何其他软件;写完代码IDEA内一键调试,无需安装、打开任何其他软件;生成API目录树,双击即可快速定位API定义的代码…非常好用!而且完全免费!在IDEA编辑器插件中心输入Apipost搜索安装:Apipost......
  • 添加请求loading效果
    概述在实际开发场景中,我们需要对每一次的请求做一个loading效果,使得让用户知道正在提交中,此时需要给用户添加loading提示好处节流处理:防止用户在一次请求还没回来之前,多次进行点击,发送无效请求友好提示:告知用户,目前是在加载中,请耐心等待,用户体验会更好步骤请求拦截器中,每......
  • PHP医院手术麻醉信息系统源码,实现手术申请与排班、审批、安排、术前、术中和术后的信
    医院手术麻醉信息系统全套商业源码,自主版权,支持二次开发手术麻醉信息系统是HIS产品的中的一个组成部分,主要应用于医院的麻醉科,属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程,包括手术申请与排班、审批、安排、术前、术中和术后的信息管理提供支持。手术麻醉信......
  • HTTP请求响应码详解 1XX/2XX/3XX/4XX/5XX
      转载自:https://blog.csdn.net/qq_43565087/article/details/124696787......
  • 开源在线客服系统源码PHP(H5网页在线客服系统小程序源码uniapp全套搭建)
    现代客户服务的重要性得到了越来越多的认可。一个优质的客户服务可以使客户在购买和使用产品、寻求技术支持时获得更好的体验,从而建立起品牌声誉和客户忠诚度。为了优化客户服务体验,许多企业已经开始使用客服系统来更好地管理、响应和交互客户需求。源码:kf.zxkfym.top......
  • 怎么确保在第一个请求成功后再执行下一个请求?
    要确保在第一个请求成功后再执行下一个请求,你可以使用Axios库的Promise链式调用或async/await语法。下面是两种方法的示例:一、使用Promise链式调用:axios.get('/api/first').then(response1=>{//第一个请求成功后的处理逻辑returnaxios.get('/api/seco......