做过微信开发的人应该都会接触到授权登录、获取用户信息等操作,比如获取用户信息,腾讯要求以get请求提交,返回的是json字符串。

通常我们使用的方法是用HttpURLConnection去调用接口,打开http连接,从连接读取返回的参数。

但是有时候(本人的开发环境没问题,部署到linux服务器上后存在乱码问题)接收到的json字符串中文字符变成乱码。

以下是我的代码

try {

System.out.println("访问GET请求:" + url1);

HttpURLConnection httpConn = null;

BufferedReader in = null;

try {

URL url = new URL(url1);

httpConn = (HttpURLConnection) url.openConnection();

// 读取响应

if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {

StringBuffer content = new StringBuffer();

String tempStr = "";

in = new BufferedReader(new InputStreamReader(

httpConn.getInputStream()));

while ((tempStr = in.readLine()) != null) {

content.append(tempStr);

}

return JSONObject.fromObject(content.toString());

} else {

throw new Exception("请求出现了问题!");

}

} catch (IOException e) {

e.printStackTrace();

} finally {

in.close();

httpConn.disconnect();

}

} catch (Exception e) {

e.printStackTrace();

}

其实这种做法只需要从输入流读取参数的时候指定读取的数据的编码格式即可,代码为

in = new BufferedReader(new InputStreamReader(

httpConn.getInputStream(),"UTF-8"));

如此上述乱码问题解决。

还有,在我们发送POST请求时,如调用自定义菜单、推送消息等接口时,需要发送参数,代码如下

URL realUrl = new URL(url);

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

其中param是参数,这样param中存在中文参数时,也会出现乱码,比如公众号的自定义菜单变成乱码等。解决办法与上面类似

out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));

将输出流中的参数指定编码格式,乱码问题解决。

java 微信开发收到乱码_微信公众号开发调用微信接口得到的参数中文变成乱码问题...相关推荐

  1. 微信公众号网页调用微信扫一扫功能

    目录 前言: 准备条件: 用到的微信接口 代码: 效果: 总结: 前言: 最近其他项目组需要在微信公众号里面调用微信的扫一扫功能,于是就帮忙一起搞了搞,一开始以为挺简单,从网上搜一下教程弄一下就可以了 ...

  2. 公众号抽奖怎么做_分享公众号里放微信抽奖活动链接步骤

    微信抽奖活动相信大家一定不会陌生的,而且我们在做公众号营销活动的时候,首选的也是抽奖链接,那么抽奖活动的类型也是五花八门,可以让我们选择的也是非常多,那么今天小编就来分享一款我们常用的在公众号里边的抽 ...

  3. 微信答题怎么做_分享公众号答题制作步骤

    小编今天要和大家分享的是订阅号怎么做答题活动,有的小伙伴会问订阅号可以做答题活动吗,答案是可以的,那么我们接下来分享下微信答题小程序怎么做. 微信答题系统的题目添加,在题目列表进行添加题目,可以一次性 ...

  4. 微信公众号页面调用微信扫一扫

    本以为调用微信扫一扫很容易,结果看了微信的开发者文档,正如大家所说,微信的开发文档写的一塌糊涂,非常的不详细. 转载:https://www.imooc.com/article/42734 从而导致基 ...

  5. 微信公众号开发--基于WxJava (微信开发 Java SDK)框架的,群发消息推送实现

    群发消息推送实现,示例: InputStream inputStream = null;/*HttpURLConnection conn = (HttpURLConnection) new URL(& ...

  6. java微信公众号开发四步完成

    一.公众号注册 此处比较简单不做过多陈述(个人需要身份证号和300RMB,企业需要企业注册证书和企业法人证件),公众号每年一审,每次年审需要300RMB,提交信息自己官网一步步点击就可知道. 二.公众 ...

  7. 微信公众号开发——Java

    微信公众号开发--Java 步骤一:需要先进入公众号平台进行JS接口安全域名的设置. 步骤二:引入微信jssdk.js文件 生成JS-SDK权限验证签名 步骤三:通过config接口注入权限验证配置 ...

  8. 微信公众号开发:获取openId和用户信息(完整版)

    注:之前总结怎么进行本地公众号开发调试,时间一长忘记开发配置却忘了,所以这里记录一下公众号开发配置,方便快速上手. 目录 开发前服务器配置 网页授权获取用户基本信息 snsapi_base snsap ...

  9. 微信公众号开发 - token获取(保证同一时间段内只请求一次)

    微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...

最新文章

  1. 【c语言】蓝桥杯基础练习 特殊回文数
  2. 【开发环境】010 Editor 工具 ( 工具下载 | 二进制文件分析模板模板安装 | 快捷键查看与设置 )
  3. 【Python】简单的最优算法函数创建
  4. boost::interprocess::offset_ptr用法的测试程序
  5. python接口测试jason_Python 接口测试之Json数据文件操作
  6. echarts饼状图mysql_echarts饼状图位置设置
  7. 单片机ch2o程序_基于单片机的室内甲醛浓度检测系统
  8. LeetCode 399. 除法求值(图的DFS搜索)
  9. java中Scanner类的使用
  10. 三菱goto怎么用_GOTO语句使用方法
  11. D3可视化:(2)Bar Chart with D3js
  12. hbase倒序查询_hbase过滤器汇总【查询汇总】
  13. 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0...
  14. 别再写 main 方法测试了,太 Low,这才是专业 Java 测试方法
  15. 铁路售票系统的设计分析(时序图、类图)
  16. OpenCV测试摄像头帧率
  17. Machine Learning(机械学习)
  18. AttributeError: ‘str‘ object has no attribute ‘spilt‘ on line 9
  19. ESP12f/E(8266)以及STM32串口自动烧录电路
  20. D3.js v5.0 旭日图

热门文章

  1. 无线pda是快递员随身携带的设备
  2. htc服务器更新系统,HTC U Ultra刷机教程 HTC U Ultra卡刷ruu升级更新官方系统
  3. 互联网领袖高峰对话实录:马云李彦宏等激烈碰撞
  4. 基于大数据的健康未来
  5. 在项目实践中如何选择编程语言
  6. php第三方支付系统--支付流程--及代码
  7. 2018最新支付系统/第三方支付系统/第四方支付系统/聚合支
  8. 微软答应2021年再给Flash续命几个月
  9. cocos2dx背景透明处理
  10. 基于Spring boot开发电子宿舍管理系统毕业设计源码132056