有两种写法可以调用接口获取返回数据(如下):

写法 一:


/*** 模拟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();//初始化curlcurl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($ch);//运行curlcurl_close($ch);return $data;
}

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

这里的post是拼接出来的。

function testAction(){$url = 'http://mobile.jschina.com.cn/jschina/register.php';$post_data['appid']       = 'XXXXXXXX';$post_data['appkey']      = 'XXXXXXXXXXXXXXXX';$post_data['member_name'] = 'XXXXXXXX';$post_data['password']    = 'XXXXXXXX';$post_data['email']    = 'XXXXXXXX@126.com';$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);
}

写法 二:

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

/*** 模拟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();//初始化curlcurl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($ch);//运行curlcurl_close($ch);    return $data;
}

//调用接口,获取返回数据

function testAction(){$url = 'http://mobile.jschina.com.cn/jschina/register.php';$post_data['appid']       = 'XXXXXXXX';$post_data['appkey']      = 'XXXXXXXXXXXXXXXX';$post_data['member_name'] = 'XXXXXXXX';$post_data['password']    = 'XXXXXXXX';$post_data['email']    = 'XXXXXXXX@126.com';//$post_data = array();$res = $this->request_post($url, $post_data);       print_r($res);
}

php 模拟post提交请求,调用接口相关推荐

  1. php模拟post提交请求与调用接口

    /*** 模拟post进行url请求* @param string $url* @param string $param*/function request_post($url = '', $para ...

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

    /** * 模拟post进行url请求 * @param string $url * @param string $param */ function request_post($url = '',  ...

  3. 在线接口测试模拟移动端请求API接口

    我们做开发一般都是在PC端,然而我们很多时候需要模拟移动端进行接口请求. 比如,当一个API需要根据用户不同的终端来返回不同的数据时,就需要一个工具来模拟不同的终端了. 利用接口测试工具ApiPost ...

  4. 利用在线HTTP接口测试工具ApiPost,模拟移动端请求API接口

    我们做开发一般都是在PC端,然而我们很多时候需要模拟移动端进行接口请求. 比如,当一个API需要根据用户不同的终端来返回不同的数据时,就需要一个工具来模拟不同的终端了. 利用接口测试工具ApiPost ...

  5. python request大批量发送请求调用接口时,报错:[WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

    接到一个项目需求,其中需要调用到供应商的Http  API,因为有大量的测试资源,所以代码中会循环调用API. 然而在测试代码执行过程中,过程中偶尔报错: 此时看到报错,怀疑是可能是同时并发的问题, ...

  6. java后台post请求调用接口

    今天项目接口一直调不通,于是我修改了相关的代码 在网上找到了一个很好的例子: public static String httpPost(String urlStr,Map<String,Str ...

  7. Linux下在shell中使用curl模拟get,post请求访问接口并设置代理

    在服用端做测试或查找问题的时候,难免要测试接口,测试接口最简单的方法就是利用shell的curl命令来模板get,post请求,每次都用,但是有些参数时间一长就记不清楚了,所以记录一下以备忘 curl ...

  8. 模拟发起http请求的几种方法

    如何使用http协议调用服务器端的服务. 在日常工作中很多时候我们会需要测试自己提供出来的方法, 很多时候一些方法跨平台提供给第三方使用,一般与服务器通信协议都选择http协议, 建议可以去仔细学习一 ...

  9. java跨域权重_爱站权重查询 API 接口请求调用

    原标题:爱站权重查询 API 接口请求调用 爱站权重查询 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以GET/POST方式提交即可.爱站权重查询 API 接口可以 ...

最新文章

  1. 利用python爬虫与数据分析,打造最强玩法,轻松成为大神级玩家!
  2. Web 架构师的能力(转)
  3. 请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径
  4. Smarty变量调节器的使用
  5. vue实现下拉框动态筛选
  6. SQL语句中用Parameters有什么好处
  7. ipython版本_使用pyenv切换版本后ipython无法使用解决方法
  8. Ta 在假笑么?这个识别算法可以鉴定
  9. 语音识别系统_智能语音识别系统_第三方语音识别系统 - 云+社区 - 腾讯云
  10. 爱河许云上计算机乐谱,神马乐团爱河简谱
  11. Vue折腾记 - (2)写一个不大靠谱的面包屑组件
  12. 2020 智慧城市解决方案(智慧城市系统及相关技术)
  13. 中国全电动注塑机行业发展趋势及未来需求前景预测报告(2022-2027年)
  14. 三 国外IP核主要竞争对手
  15. 什么是云服务器?什么是阿里云服务器管理?
  16. 国空三区三线思考之:Arcgis自上而下从左到右进行编号
  17. (附源码)springboot社区养老医疗服务平台 毕业设计 041148
  18. 不一样的视觉盛宴,Python实现3D地图
  19. c语言中赋值号左边必须为变量,.在C语言的赋值语句中,赋值号左边必须是(12)——青夏教育精英家教网——...
  20. DAS、NAS、SAN三种存储架构

热门文章

  1. CPU和Soc的区别
  2. 卷积云神经网络_大气光学质量,Optical air mass,音标,读音,翻译,英文例句,英语词典...
  3. 自定义Button实现百分比宽度
  4. (15)webpack externals
  5. 域名空间的申请和项目的部署及发布
  6. java编写salary函数_编写一个Java程序,在程序中包含一个Employee类,Employee类包含name、age、salary三个成员变量...
  7. 【近似最近邻搜索】在茫茫点集中,怎么找到你的邻居
  8. 2021最新版JAVA开发面试那些事儿~(结尾有字节、华为面试内容)
  9. Word+Mathtype的双栏科研论文排版技巧
  10. Linux上查找最大文件的3种方法