`

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
分享到:
评论

相关推荐

    微信提现到零钱V3接口的对接java实现demo.rar

    3. **WechatPay.java**:这个类可能是整个项目的主入口或者核心业务处理类,包含了调用微信支付接口的主要逻辑,可能包括请求参数的组装、签名生成、请求发送以及响应处理。 4. **HttpUtil.java**:这个类可能实现...

    c#调用微信扫一扫功能等

    本教程将详细解释如何使用C#语言调用微信的扫一扫API来实现这一功能。 首先,我们需要注册并获取微信开放平台的账号,创建一个移动应用,并获取到AppID和AppSecret。这是与微信服务器通信的基础,用于验证请求的...

    java实现企业微信消息推送

    在企业微信API开发中,Java作为一种广泛使用的编程语言,提供了丰富的库和工具来实现与企业微信接口的交互,实现消息推送功能。以下是一份详细的Java实现企业微信消息推送的知识点详解: 1. **企业微信API概述** ...

    微信native支付接口调用代码示例+企业微信消息推送接口调用示例

    在微信支付和企业微信消息推送这两个领域,开发者经常需要与微信平台进行接口调用来实现特定功能。本示例主要涉及两个关键接口:微信Native支付接口和企业微信消息推送接口。 一、微信Native支付接口调用 1. **...

    CURLget|post请求封装

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

    企业号微信提醒服务接口

    1. **Access Token获取**:Access Token是调用微信接口的基础,它是企业微信服务器用于验证开发者身份的重要凭证。开发者需要通过调用接口`get_access_token`,提供AppID和AppSecret来获取。C#代码中,你可以使用...

    java企业微信和钉钉向普通用户发送消息

    本教程将基于提供的"java企业微信和钉钉向普通用户发送消息"案例,深入讲解如何利用Java API与这两个主流的企业通讯平台进行集成,从而实现消息推送功能。 首先,我们来看`RemoteServiceUtil.java`,这是一个通用的...

    自已写的 php 微信支付V3接口类

    开发者需要理解HTTP请求的构建,如设置请求方法(GET或POST)、添加请求头(Content-Type、Accept等)以及构造请求体。响应后,需要解析JSON格式的数据,提取必要的信息,如交易状态、订单号等。 4. **证书管理**:...

    java获取微信用户信息

    - 在Servlet中处理授权流程,接收回调URL的code,然后调用微信API获取access_token和openid。 - 将获取到的用户信息保存到session或数据库,或者直接返回到jsp页面展示。 - 在jsp页面上,可以通过session或后台...

    Java后端(SSM)+ 前端微信小程序 + 数据库(mysql).zip

    6. **前后端交互**:前端通过Ajax或微信小程序的wx.request调用后端接口,获取或提交数据。理解异步请求处理和状态码是重要的。 7. **版本控制与协作**:项目开发中,Git通常用于版本控制,确保团队成员间的协作和...

    易语言 企业微信 WXBizMsgCrypt 类函数调用例程.VerifyURL, DecryptMsg, EncryptMsg三个接口

    开发者需要妥善保管Token和EncodingAESKey,避免泄露,同时正确地实现这三者接口的调用逻辑,才能保证企业微信功能的正常运行。在处理企业微信通知时,务必遵循这些安全规范,以确保服务的稳定性和用户数据的安全。...

    Python-weixinlogin微信网页授权实现扫码登录

    access_token是调用微信接口的凭证,而openid是用户的唯一标识。 如果在scope为'snsapi_userinfo'的情况下,我们还可以使用access_token和openid请求用户的基本信息,如昵称、头像等。这通常涉及另一个POST请求,...

    php中CURL模拟进行微信接口的GET与POST例教程共

    OAuth2.0用于用户授权,access_token则用于调用微信接口。在进行POST请求时,可能还需要设置`CURLOPT_HTTPHEADER`添加自定义的Header,比如设置Content-Type为application/json,或者添加微信接口所需的签名和access...

    微信企业号java版开发实例

    在Java开发中,需要了解对应的API接口,实现文件的上传(如通过POST请求发送文件)和下载(如通过GET请求获取文件URL)。同时,注意文件的生命周期和存储策略。 6. **通讯录管理** 企业可以通过微信企业号管理组织...

    C#后台 Get、Post 网络请求

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

    微信小程序+springboot+mybatis实现增删改查(微信小程序端).rar

    3. **RESTful API**:后端通常会设计符合RESTful风格的接口,以便于微信小程序调用,如GET用于查询,POST用于新增,PUT用于更新,DELETE用于删除。 4. **安全控制**:如使用JWT(JSON Web Token)进行用户身份验证,...

    UniApp中封装request网络请求包含GET、POST、PUT、DELETE等

    在这个封装中,我们为GET、POST、PUT和DELETE方法提供了统一的调用接口,并在`request`函数中处理了基础的请求配置,如URL前缀、数据序列化、添加认证头以及错误处理。`showLoading`和`loadingText`用于显示加载提示...

    Java微信支付之关闭订单

    Java微信支付之关闭订单是指在微信支付中,商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。...

    微信服务号java版开发教程

    微信服务号是一个为企业和组织提供更强大的业务服务与用户管理能力的公众平台,它允许开发者通过API接口实现各种功能,例如自定义菜单、消息推送、用户管理等。本教程将深入探讨如何利用Java实现这些功能。 首先,...

    微信小程序后台 demo(java版)

    Java版的后台demo展示了如何与微信小程序进行API通信,实现数据的请求和响应。 2. **wafer-java-server-sdk**: "wafer-java-server-sdk"是微信官方提供的Java开发工具包,它包含了一系列接口和工具类,方便开发者...

Global site tag (gtag.js) - Google Analytics