首页 > 编程语言 >php模拟post提交请求,调用接口

php模拟post提交请求,调用接口

时间:2023-10-09 09:15:43浏览次数:47  
标签:ch setopt url 接口 post php data curl

复制代码

 /**
     * 模拟post进行url请求
     * @param string $url
     * @param string $param
     */
    function request_post($url = '', $param = '') {
        if (empty($url) || empty($param)) {
            return false;
        }
        
        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        
        return $data;
    }
复制代码

这是方法,

下面是具体的调用案例。

复制代码
    function testAction(){
        $url = 'http://mobile.jschina.com.cn/jschina/register.php';
        $post_data['appid']       = '10';
        $post_data['appkey']      = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
        $post_data['member_name'] = 'zsjs123';
        $post_data['password']    = '123456';
        $post_data['email']    = '[email protected]';
        $o = "";
        foreach ( $post_data as $k => $v ) 
        { 
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);

        $res = $this->request_post($url, $post_data);       
        print_r($res);

    }
复制代码

这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。

这里的post是拼接出来的。

 

也可以改造成下面的方式。

复制代码
/**
     * 模拟post进行url请求
     * @param string $url
     * @param array $post_data
     */
    function request_post($url = '', $post_data = array()) {
        if (empty($url) || empty($post_data)) {
            return false;
        }
        
        $o = "";
        foreach ( $post_data as $k => $v ) 
        { 
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);

        $postUrl = $url;
        $curlPost = $post_data;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        
        return $data;
    }
复制代码

将拼接也封装了起来,这样调用的时候就更简洁了。

https://www.clw9335.com/game/136035.html

复制代码
function testAction(){
        $url = 'http://mobile.jschina.com.cn/jschina/register.php';
        $post_data['appid']       = '10';
        $post_data['appkey']      = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
        $post_data['member_name'] = 'zsjs124';
        $post_data['password']    = '123456';
        $post_data['email']    = '[email protected]';
        //$post_data = array();
        $res = $this->request_post($url, $post_data);       
        print_r($res);

    }
复制代码

 

  双人猛鬼敲门v1.0.1 安卓版-9335游戏网

标签:ch,setopt,url,接口,post,php,data,curl
From: https://www.cnblogs.com/zx8868/p/17750664.html

相关文章

  • php 接口与前端数据交互实现
    最近在做前后端数据交互的尝试,也跳了很多坑,使用的是php+bootstrap-table+js,把一些收获记录在这里,方便查询。这个小项目,仅有3个文件,分别为:crud.htmldata.phpcrud.sql数据交互实现1:查询mysql数据库建表php查询接口前端数据展现mysql数据库建表数据库名称:crud......
  • php自学提升进阶路线
    为了自己对php的系统全面深入的掌握,我通过个人经验,以及搜索网上高手经验,汇总了一份php自我学习路线规划,包括实战演练、学习建议、高手进阶、常见问题和测试总结五块。算是一个系统的学习计划和目标吧。避免盲目学习,对提高有所指引。希望自我加压,通过努力修炼达到高手水平。天道酬......
  • php java net 开发应用
    一、语言:PHP:PHP产生与1994年,其语法混合了C、Java、Perl和他自创的一些编程语法;PHP是嵌入在HTML中执行的;它也是一种解释性语言。早期的PHP并非完全的面向对象编程语言,到了PHP4以后的版本才开始有了面向对象的概念。PHP主要在大型网站和小型网站,sns,互联网应用方面广泛使用,高......
  • PHP的错误机制总结
    PHP的错误机制总结PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课。特别说明:文章的PHP版本使用5.5.32PHP的错误级别https://www.clw9335.com/rj/首先需要了解php有哪些错误。截至到php5.5,一共有16个错误级别注意:尝试下面的代码的时候请确保打开er......
  • java中的异步任务处理和Feature接口
    简介Java并发包提供了一套框架,大大简化了执行异步任务所需要的开发。框架引入了“执行服务”的概念,封装了任务执行的细节,对任务提交者而言,他可以关注任务本身,如提交任务、获取结果、取消任务。而不用关注任务执行的细节。基本接口①Runnable和Callable:表示要执行的任务②Exc......
  • for循环php:使用For循环来提高你的PHP编程技能
    示例示例for循环是一种常用的循环控制结构,用于重复执行一段代码片段。在PHP中,for循环可以使用以下语法格式:for初始化;条件;增量){for循环是一种常用的循环控制结构,用于重复执行一段代码片段。在PHP中,for循环可以使用以下语法格式:for(初始化;条件;增量){//代码块}其中,......
  • for循环php:使用For循环来提高你的PHP编程技能
    示例示例for循环是一种常用的循环控制结构,用于重复执行一段代码片段。在PHP中,for循环可以使用以下语法格式:for初始化;条件;增量){for循环是一种常用的循环控制结构,用于重复执行一段代码片段。在PHP中,for循环可以使用以下语法格式:for(初始化;条件;增量){//代码块}其中,初......
  • C++接口自动注册
    #include<iostream>#include<memory>template<typenameT>classInterface{public:staticInterface&instance(){staticInterfaceinst;returninst;}staticvoidreg(T*impl){instance().m_im......
  • ThinkPHP 5与腾讯IM通讯(TIM)进行对接
    以下是一个使用ThinkPHP5与腾讯IM通讯(TIM)进行对接的代码示例:首先,确保你已经在腾讯云控制台创建了TIM应用,并获取到了APPID和APPKEY。安装TIMSDK在ThinkPHP项目的根目录下,使用Composer安装TIMSDK:bash复制代码 composerrequiretop-think/tim-sdk创建TIM初......
  • metersphere接口自动化测试流程
    一、在接口定义中创建接口 点击更多操作也可以导入swagger接口二、可设置接口的测试断言规则 三、接口自动化,创建测试场景 场景中关联用例 这里要设置运行环境四、执行测试场景 五、生成测试报告 ......