`

Java实现GET和POST请求调用微信公众平台接口常用模板

阅读更多

    在做微信公众平台后台开发的时候,常常需要用代码实现模拟浏览器的GET和POST请求,
下面是用Java语言实现的GET和POST请求的一般写法:

    1.GET请求模拟(不带参数)
   
    //由于这类方法经常被用到,因此建议写在一个工具类里面,设置为静态方法,方便调用。
    //requestUrl表示请求链接
    public static String sendGet(String requestUrl) {
        StringBuffer buffer = null;

        try {
            // 建立连接
            URL url = new URL(requestUrl);
            HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
            httpUrlConn.setDoInput(true);
            httpUrlConn.setRequestMethod("GET");

            // 获取输入流
            InputStream inputStream = httpUrlConn.getInputStream();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            // 读取返回结果
            buffer = new StringBuffer();
            String str = null;
            while ((str = bufferedReader.readLine()) != null) {
                buffer.append(str);
            }

            // 释放资源
            bufferedReader.close();
            inputStreamReader.close();
            inputStream.close();
            httpUrlConn.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return buffer.toString();
    }

    2.GET请求模拟(带参数)
   
    //由于这类方法经常被用到,因此建议写在一个工具类里面,设置为静态方法,方便调用。
    //url表示请求链接,param表示json格式的请求参数
    public static String sendGet(String url, Object param) {
        String result = "";     
        BufferedReader in = null;
        PrintWriter out = null;
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            connection.setDoOutput(true);
            // 建立实际的连接
            connection.connect();
            out = new PrintWriter(connection.getOutputStream());
            // 发送请求参数
            out.print(param);
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream(), "UTF-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        System.out.println(result);
        return result;
    }
   
   
   
    3.POST请求模拟
   
    //由于这类方法经常被用到,因此建议写在一个工具类里面,设置为静态方法,方便调用。
    //url表示请求链接,param表示json格式的请求参数
    public static String sendPost(String url, Object param) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性 注意Authorization生成
            // conn.setRequestProperty("Content-Type",
            // "application/x-www-form-urlencoded");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream(),"utf-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            System.out.println(result);
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输出流、输入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
   
    以上方法里面所用到的包,这里没有引入,只是作为一个实例程序,说明一下模拟浏览器的GET和POST请求的常见写法。
    希望对朋友们有用!

0
0
分享到:
评论

相关推荐

    CURLget|post请求封装

    调用微信公众平台接口 需要用到CURL(相当于ajax) 访问接口返回数据 页面不刷新 此文件封装了调用curl执行get|post请求 返回相应的数据

    C#后台 Get、Post 网络请求

    C#后台 Get、Post 网络请求 获取网页信息--可以做到一个文件多出使用(后台结果公告内容,通过获取结果公告内容抓取到...微信公众平台调用post提交数据 有些需要传递json格式的数据如果不是json格式的数据可能会报错误

    超级懒汉微信SDK源码

    我们的服务器只需要一个GET,和一个POST就可以和微信通信了,从这一点来看,设计的还是比较人性化的,赞一个。GET用于接通微信服务的校验,验证;POST用于接收微信服务器过来的消息,然后将Response组装好返回即可。

    MF00452-企业级微信多用户公众平台源码.zip

    这几个文件是和微信相关的接口开发 简单的说就是get/post 基本上顾名思义 简单明了 比如foodlist当然是订餐这个 用户表为a_user h开头的是活动 如大转盘、刮刮卡 l开头是微楼书 V开头的是和会员卡相关 W开头的是微信...

    C#WEB用户令牌TOKEN验证防止HTTPGETPOST等提交

    C#WEB用户令牌TOKEN验证,防止HTTP、GET、POST等提交包含服务端和客户端源码。Nginx集群,SSL证书的WebApi令牌验证

    微信客服管理 集成微信接口、聊天机器人 免费注册使用

    3、集成了微信接口,具有获取好友列表及接收和发送微信功能,让你非常方便的集成到企业的OA办公系统、订单状态监控、服务器运行状态监控等。 使用说明: 1、请用手机微信扫描右边二维码登录系统(如不显示二维码...

    微信小程序调用后台接口+热点新闻滚动展示

    1、微信JS文件,发送请求调用: //将返回接口数据,写入Page({data})里面   //获取热点新闻,这个也是写在onload:function(){//code)里面的 wx.request({ url: '...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题16.http get post请求的区别.mp4 │ Java面试题17.说说你对Servlet的理解.mp4 │ Java面试题18.Servlet的生命周期.mp4 │ Java面试题19.forward和redirect的区别.mp4 │ Java面试题20.jsp和Servlet的...

    微信小程序调用PHP后台接口 解析纯html文本

    微信小程序调用PHP后台接口,解析纯html文本,效果图片预览  1、微信js动态传参: wx.request({ url: 'https://m.****.com/index.php/Home/Xiaoxxf/activity_detail?a_id='+options.id,//\u542b\u5bcc\u6587\u...

    java6_chapter912_ajax_jquery2019-8-21.zip

    第三种方式实现ajax异步刷新--post 4.需求4: 第四种方式实现ajax异步刷新--getJSON 5.需求5: 第五种 使用jquery发送Ajax请求 html 实现html类型传递数据的步骤: 1.管理员登录成功直接进入管理员list.jsp页面,...

    PB实现微信、支付宝、新大陆星POS支付-9.0.rar

    PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发 string ls_url string ls_data string ls_dd string ls_zfqd //【交易类型--传入平台用】 if rb_1.checked = true then ls_zfqd ...

    微信小程序调用PHP后台接口,解析纯html文本

    1、微信js动态传参:wx.request({ url: 'https://m.****.com/index.php/Home/Xiaoxxf/activity_detail?a_id='+options.id,//\u542b\u5bcc\u6587\u672chtml data: { is_detail:1 }, method: 'GET', // OPTIONS, GET, ...

    音乐博客小程序毕业设计

    音乐博客小程序采用微信小程序原生开发,封装了多...后台采用vue-admin-template模板,采用koa2构建管理系统后端,多种跨域解决方案,使用GET和POST接口进行接收,同时采用HTTP API访问云开发资源,实现轮播管理,博客管理等;

    uni-app微信公众号支付.vue

    //微信充值 //支付接口测试 function balance(url, data) { uni.request({ url: cfg.originUrl + '/wx/mp/js_sig.do', data: { route: url }, method: 'GET', success: (res) => { jweixin.config({ debug:...

    开奖API调用.txt

    总是听到前端开发人员和服务器开发人员在讨论接口的问题,而你却一脸懵逼,不知所云,有时候我们会调用第三方平台的服务,但你不知道如何根据对方的接口写文档,因为你根本不知道接口是何物! 这篇文章写得很通俗...

    手机端快滑到底部时,自动加载ajax请求下一页

    type: 'get', //请求方式 GET|POST dataType: 'json', //请求的数据类型 //取决于后台返回的类型做相应的处理 /** * 回调方法 * @param a * a参数是数据,b参数是页码,c参数是请求每页条数,d参数是总页码...

    wx-msg-push-tencent:基于腾讯云云函数和API网关实现的企业微信应用消息推送服务

    基于腾讯云Serverless实现的企业微信应用消息推送服务Serverless 云函数目前每月有免费资源使用量40万GBs、免费调用次数100万次API网关目前开通即送时长12个月100万次免费额度个人或者低频率使用完全够了,可以通过 ...

    ASP.NET实现QQ、微信、新浪微博OAuth2.0授权登录 原创

    烦而且乱,索性自己写,后期的扩展也容易,看过接口后,开始以为很难,参考了几个源码之后发现也不是那么难,无非是GET或POST请求他们的接口获取返回值之类的,话不多说,这里只提供几个代码共参考,抛砖引玉了。...

    http请求405错误方法不被允许的解决 (Method not allowed)

    主要介绍了http请求405错误方法不被允许的解决 (Method not allowed),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    基于vue-element-admin+php的RBAC通用角色权限管理系统.zip

    通用后台角色权限管理系统, 基于 vue-element-admin 和 PHP CodeIgniter 3.1.10 RESTful 实现, 采用前后端分离架构的权限管理系统,PHP快速开发平台,目标是搭建一套简洁易用的快速解决方案,可以帮助用户有效降低...

Global site tag (gtag.js) - Google Analytics