关键字:http_request http_request post get http request
原文: http://www.cnblogs.com/txw1958/p/http_request.html

简介

http_request是方倍工作室写的一个用于微信接口数据传输的万能函数,几乎适应于所有微信接口数据的访问及提交,
其原理是使用curl实现向微信公众平台接口http及https协议时的get,post方式。

实现

函数实现如下

  1. function http_request($url, $data = null)
  2. {
  3. $curl = curl_init();
  4. curl_setopt($curl, CURLOPT_URL, $url);
  5. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  6. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  7. if (!empty($data)){
  8. curl_setopt($curl, CURLOPT_POST, );
  9. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  10. }
  11. curl_setopt($curl, CURLOPT_RETURNTRANSFER, );
  12. $output = curl_exec($curl);
  13. curl_close($curl);
  14. return $output;
  15. }

举例

以自定义菜单的开发为例,使用如下

  1. <?php
  2.  
  3. $access_token = "";
  4.  
  5. $jsonmenu = '{
  6. "button":[
  7. {
  8. "name":"天气预报",
  9. "sub_button":[
  10. {
  11. "type":"click",
  12. "name":"北京天气",
  13. "key":"天气北京"
  14. },
  15. {
  16. "type":"click",
  17. "name":"上海天气",
  18. "key":"天气上海"
  19. },
  20. {
  21. "type":"click",
  22. "name":"广州天气",
  23. "key":"天气广州"
  24. },
  25. {
  26. "type":"click",
  27. "name":"深圳天气",
  28. "key":"天气深圳"
  29. },
  30. {
  31. "type":"view",
  32. "name":"本地天气",
  33. "url":"http://m.hao123.com/a/tianqi"
  34. }]
  35.  
  36. },
  37. {
  38. "name":"方倍工作室",
  39. "sub_button":[
  40. {
  41. "type":"click",
  42. "name":"公司简介",
  43. "key":"company"
  44. },
  45. {
  46. "type":"click",
  47. "name":"趣味游戏",
  48. "key":"游戏"
  49. },
  50. {
  51. "type":"click",
  52. "name":"讲个笑话",
  53. "key":"笑话"
  54. }]
  55.  
  56. }]
  57. }';
  58.  
  59. $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;
  60. $result = http_request($url, $jsonmenu);
  61. var_dump($result);
  62.  
  63. function http_request($url,$data = null)
  64. {
  65. $curl = curl_init();
  66. curl_setopt($curl, CURLOPT_URL, $url);
  67. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  68. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  69. if (!empty($data)){
  70. curl_setopt($curl, CURLOPT_POST, 1);
  71. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  72. }
  73. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  74. $output = curl_exec($curl);
  75. curl_close($curl);
  76. return $output;
  77. }
  78.  
  79. ?>

微信接口请求万能函数http_request的更多相关文章

  1. 微信小程序request(ajax)接口请求封装

    微信小程序request(ajax)接口请求封装 最近在进行小程序的编写,需要调用后端接口,经常要用到wx.request方法,所以就自己封装了一下,简化一下代码,如果能给大家提供帮助更好,在封装的时 ...

  2. 微信接口开发1--向微信发送请求--获取access_token

    //随便放置一个php文件在服务器上.执行该方法--调用模拟get提交---到微信-->获得微信返回的access_token 不建议自己编写模拟get提交方法. 建议直接导入微信框架LaneW ...

  3. 接口请求失败处理,重新请求并限制请求次数.自己封装搞定retry函数

    最近开发一款小程序的时候想到一个问题,如果接口突然挂掉怎么办呢,于是乎想到一个解决办法.接口请求重试功能.并限制请求次数 用最新的async函数语法实现.代码简洁明了. 测试代码如下: functio ...

  4. 微信小程序 功能函数 支付接口

    // 订单生成返回数据,弹出是否支付模态 wx.showModal({ title: '微信支付', content: '确定支付吗?', success: function (res) { if ( ...

  5. C#开发微信门户及应用(1)--开始使用微信接口

    微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为日常计划的重要事情之一了.本系列文章希望从一个循序渐进的角度上,全面介 ...

  6. 转 C#开发微信门户及应用(1)--开始使用微信接口

    微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为日常计划的重要事情之一了.本系列文章希望从一个循序渐进的角度上,全面介 ...

  7. Django:之中间件、微信接口和单元测试

    Django中间件 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中间件中的 pr ...

  8. asp.net C# 实现微信接口权限开发类

    当前微信接口类已实现以下接口,代码上如果不够简洁的,请自行处理. 1.获取access_token 2.获取用户基本信息 3.生成带参数二维码 4.新增永久素材 5.新增临时素材 6.发送微信模版 7 ...

  9. (转)C#开发微信门户及应用(1)--开始使用微信接口

    http://www.cnblogs.com/wuhuacong/p/3613826.html 微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习 ...

随机推荐

  1. SparkContext.setCheckpointDir()

    class SparkContext extends Logging with ExecutorAllocationClient Main entry point for Spark function ...

  2. ASPX版菜刀一句话,留后门专用

    首先解释一下为什么要做这个玩意:众所周知.net一句话是不能插入到文件之中的,除非那个页面使用Jscript编写,但是现在看来 Jscript市场很低,遇到的.net站基本都是C#.新建一个SHELL ...

  3. Phaser中很多对象都有一个anchor属性

    游戏要用到的一些图片.声音等资源都需要提前加载,有时候如果资源很多,就有必要做一个资源加载进度的页面,提高用户等待的耐心.这里我们用一个state来实现它,命名为preload. 因为资源加载进度条需 ...

  4. Linux下LDAPSearch的例子

    apt-get install ldap-utils LdapSearch examples The following examples are taking from various ldapse ...

  5. RAID 容量计算器

    https://www.synology.com/zh-cn/support/RAID_calculator   磁盘阵列比较表   n/2 n/2 n n/2 安全性高 综合RAID 0/1优点,理 ...

  6. SSH+Oracle10G抛Disabling contextual LOB creation as createClob() m

    在使用Oracle10G时候,实体类使用了CLOB字段,结果抛了Disabling contextual LOB creation as createClob() method threw error ...

  7. BKDRhash实现

    参考了一些有关于哈希算法的博客,里面都有提到BKDR哈希算法,在博客:各种字符串Hash函数中有对各种hash算法进行测试,测试关于哈希冲突,以及散列的质量,得到的结果可以参考以上博文. BKDRha ...

  8. ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式

    /** * ThinkPHP version 3.1.3 */ ThinkPHP ( 官方网站:http://www.thinkphp.cn/ ) 目前最新版本是 3.2.2,它要求 PHP 的版本高 ...

  9. 从StackOverflow来的值得回味的编程观点

    从StackOverflow来的值得回味的编程观点 很多有意思的话语 在 2012年06月08日 那天写的     已经有 4148 次阅读了 感谢 参考或原文 www.csdn.net   服务器君 ...

  10. CSS Questions:Front-end Developer Interview Questions

    Describe what a "reset" CSS file does and how it's useful. What Is A CSS Reset? A CSS Rese ...