首先是客户端执行方法ApiModel.php:

<?php
/*** 模拟post进行url请求* @param string $url* @param array $post_data*/function request_post($url = '',$ispost=true, $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);$key=md5(base64_encode($post_data));if($ispost){$url=$url;}else{$url = $url.'?'.$post_data;}$curlPost = 'key='.$key;header("Content-type: text/html; charset=utf-8");$ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上if($ispost){curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);}$data = curl_exec($ch);//运行curlcurl_close($ch);return $data;}?>

客户端调用方法,可以在此配置基本信息api.php:

<?php
require 'ApiModel.php';
function testAction(){$url = '接口地址';$post_data['appid']       = '10';$post_data['appkey']      = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';$post_data['member_name'] = 'zsjs124';$post_data['password']    = '123456';$post_data['email']    = 'zsjs124@126.com';//$post_data = array();$res = request_post($url,$ispost=true,$post_data);       print_r($res);}
testAction();
?>

服务器的接口函数test.php:

<?php
function serverapi(){$key='57173d6ad842d807443ee0db91fed323';if($_GET&&$_GET['appkey']=='cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ'||$_POST&&$_POST['key']===$key){$arr=array('name'=>'huanglu','password'=>'123456');echo json_encode($arr);}else{exit('非法访问!');}
}
serverapi();
?>

转载于:https://www.cnblogs.com/hltswd/p/5638453.html

php用curl调用接口方法,get和post两种方式相关推荐

  1. 以太坊智能合约交互调用,web3.js,web3j两种方式实现

    导语 接上篇文章 <使用hardhat部署solidity智能合约到测试网> 部署完合约之后,那么如何区块链进行交互呢?这节的主要内容就是使用web3.js和web3j来与区块链以及链上的 ...

  2. Autofac 设置方法拦截器的两种方式

    前提 1.Nuget安装Autofac 4.0以下版本  4.0及4.0 以上版本暂时没找到合适的方案 2.Nuget安装Autofac.Extras.DynamicProxy2 3.创建一个类似下面 ...

  3. ffmpeg api接口实现rtmp推流的两种方式

    FFmpeg 版本 version 4.0.2 搭建Rtmp服务 具体可以参考一下其它文章,本文主要讲的是如何使用FFmpeg api接口实现推流功能 推流flv文件 av_register_all( ...

  4. curl调用接口方法

    通过curl -h我们可以获取到所有curl的命令以及其用法描述. Usage: curl [options...] <url> Options: (H) means HTTP/HTTPS ...

  5. java new class 直接调用_java中创建对象的的两种方式具体解释,一个是new一个是调用Class类的newinstance方法?...

    展开全部 1.new 使用java的关键字new来创建对象实例.构造函数链中的所有构造函数都32313133353236313431303231363533e78988e69d833133333739 ...

  6. .net core 调用c dll_C++ 调用C封装DLL库的两种方式

    编写DLL代码 新建工程 新建空项目工程 点击确定.然后右键项目选择新建项. 出现下图,选择头文件. 再次选择新建项,选中C++文件,将其改为MySocketClient.c,然后选择添加. 到这里, ...

  7. C++中调用DLL中的函数的两种方式

    一.DLL源文件: extern "C" __declspec(dllexport) int add(int a, int b) {return a + b; } 二.静态调用: ...

  8. HashMap 遍历hashMap的7种方法和删除数据两种方式

    遍历数据 1.使用Iterator 遍历HashMap EntrySet 2.使用Iterator 遍历HashMap KeySet 3.使用For-each EntrySet 循环迭代 HashMa ...

  9. 使用CURL调用接口[*示例*]

    <?php header("content-type:text/html;charset=utf-8");/*这是 使用CURL调用接口*/$ch = curl_init() ...

最新文章

  1. html5拖动图像的关键字,6.7 拖放图像 - HTML5 Canvas 实战
  2. poj 1845 Sumdiv (算数基本定理+逆元)
  3. php显示评委打分情况代码,评委打分表自动汇总计算得分
  4. springboot listener_看完这份springboot 全套面试提升宝典,面试不带怕的
  5. OpenGL:编译glfw并配置
  6. 从网页上考的代码考到eclipse里面,会出现每行开头的空格下面有红色异常提示,为什么?...
  7. 铁路从未授权任何第三方平台售票服务,各大旅游网站哪来的接口?
  8. 蓝桥杯 ALGO-158 算法训练 sign函数
  9. oracle column的设置,SQL*PLUS的命令行——column命令 - [ORACLE]
  10. 图像语义分割(15)-ConvCRFs:用于语义分割的卷积条件随机场
  11. HTML5学习总结(1)——HTML5基础知识
  12. 【POJ2318】TOYS(点在凸多边形内判定---模版暴力/二分)
  13. HFSS - 倒F天线的设计与仿真
  14. 用HTML做一份个人简历
  15. 精品小程序小游戏代码集合(持续更新中)
  16. python成绩统计及格学平成_强化学习训练Chrome小恐龙Dino:最高超过4000分
  17. 北大计算机专业毕业论文,北京大学计算机专业硕士
  18. Python数组并集交集补集代码实例
  19. 个人关于颈椎病治疗和保养的一些经验总结!
  20. 商科能读计算机专业吗,我本科读的计算机 想去新西兰留学可以换专业吗? 没分了跪求啊,...

热门文章

  1. python计算2的20次方_Python学习二运算符
  2. pytorch调用不了多个gpu_pytorch利用多个GPU并行计算
  3. 内容 超链接_excel中如何设置目录与返回目录超链接?这两种方法很简单
  4. python基础教程慕课_Python基础教程(6)--抽象
  5. 学计算机编程会秃头吗,编程真的容易导致秃顶么?
  6. react18并发渲染
  7. JavaScript函数节流和函数防抖之间的区别
  8. html如何获取消息实体的长度,50道js面试题 XXXXX
  9. MyBatis框架使用trim标签修改字段,查询字段
  10. http 标准超时时间_Go 中 http 超时问题的排查