java微信 客服接口-发消息 中文乱码

来源:http://blog.csdn.net/sxmfendou/article/details/53432390

  1. /**
  2. * 向指定 URL 发送POST方法的请求
  3. *
  4. * @param url
  5. *            发送请求的 URL
  6. * @param param
  7. *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
  8. * @return 所代表远程资源的响应结果
  9. */
  10. public static String sendPost(String url, String param) {
  11. PrintWriter out = null;
  12. BufferedReader in = null;
  13. String result = "";
  14. try {
  15. URL realUrl = new URL(url);
  16. // 打开和URL之间的连接
  17. URLConnection conn = realUrl.openConnection();
  18. //设置通用的请求属性
  19. conn.setRequestProperty("user-agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0)");
  20. // 发送POST请求必须设置如下两行
  21. conn.setDoOutput(true);
  22. conn.setDoInput(true);
  23. // 获取URLConnection对象对应的输出流
  24. OutputStreamWriter outWriter = new OutputStreamWriter(conn.getOutputStream(), "utf-8");
  25. out = new PrintWriter(outWriter);
  26. // 发送请求参数
  27. out.print(param);
  28. // flush输出流的缓冲
  29. out.flush();
  30. // 定义BufferedReader输入流来读取URL的响应
  31. in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  32. String line;
  33. while ((line = in.readLine()) != null) {
  34. in = new BufferedReader(new InputStreamReader(conn.getInputStream()));result += line;
  35. }
  36. } catch (Exception e) {
  37. System.out.println("发送 POST 请求出现异常!"+e);
  38. e.printStackTrace();
  39. }
  40. //使用finally块来关闭输出流、输入流
  41. finally{
  42. try{
  43. if(out!=null){
  44. out.close();
  45. }
  46. if(in!=null){
  47. in.close();
  48. }
  49. }
  50. catch(IOException ex){
  51. ex.printStackTrace();
  52. }
  53. }
  54. return result;
  55. }

[java] view plain copy

print?

  1. /**
  2. * 普通文本消息,需用户在48h与公共帐号有互动
  3. * 微信公共账号发送给账号
  4. * @param content 文本内容
  5. * @param toUser(OPENID) 微信用户
  6. * @return
  7. */
  8. public static void sendTextMessageToUser(HttpServletRequest request,String content,String toUser){
  9. String json = "{\"touser\": \""+toUser+"\",\"msgtype\": \"text\", \"text\": {\"content\": \""+content+"\"}}";
  10. //获取access_token
  11. String accessToken = getAccessToken(request);
  12. //发送模版消息给指定用户
  13. String action = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+accessToken;
  14. System.out.println("json:"+json);
  15. try {
  16. String result = HttpJsonUtil.sendPost(action, json);
  17. System.out.println(result);
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. }

我自己都不知道在这个地方倒下了多少次了:

关键代码:

// 获取URLConnection对象对应的输出流
OutputStreamWriter outWriter = new OutputStreamWriter(conn.getOutputStream(), "utf-8");
out = new PrintWriter(outWriter);

乱码时候的写法是:

in = new BufferedReader(new InputStreamReader(conn.getInputStream()));

时间: 2024-10-27 07:17:21

java微信 客服接口-发消息 中文乱码的相关文章

微信公众平台开发(73) 客服接口发送客服消息

原文:微信公众平台开发(73) 客服接口发送客服消息 微信公众平台开发 客服接口 发送客服消息作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/weixin73-custom-send.html 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单clike事件.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前为24小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通

微信模板消息接口、微信客服接口

客服接口:http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html 模板消息接口:http://mp.weixin.qq.com/wiki/5/6dde9eaa909f83354e0094dc3ad99e05.html 一.运行代码 <?php namespace ThinkPHP\Library\Vendor; class Wechat{ private $appid ; private $appsecret; p

[微信] 客服接口调用的时候返回 40003 Invalid OpenID

首先确认收件人在24小时内主动向公众号发过消息.该消息的 FromUserId 即是客服消息的 touser 参数的 OpenId 其次,确认使用的编码是 ASCII ,UTF-8无效!!!干了一下午.终于找到方法了. PostString 的测试样例: request.Method = "POST"; request.ContentType = "application/json"; request.Timeout = 5000; // Five seconds

java 发送微信客服消息

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 package com.baosight.wechat.service; import net.sf.json.JSONObject;

Force.com微信开发系列(六)客服接口

当用户主动发消息给微信公众账号的时候(包括发送信息.点击自定义菜单click事件.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数.此接口主要用于客服等有人工消息处理环节的功能,方便开发者提供更加优质的服务. 客服接口调用请求说明 客服接口调用的接口说明如下(http请求方式为POST),如果获取Access Token的方式

Senparc.Weixin.MP SDK 微信公众平台开发教程(十):多客服接口说明

微信官方的多客服接口原理是通过用户发送的信息,开发者服务器返回一条指定类型的响应信息,使用户的对话状态切换到官方的多客服状态(持续一段时间),这段时间内用户发送的所有信息都不会到达开发者的服务器,而是转到多客服的软件上. 需要实现多客服,必须是通过验证的服务号,进入后台的[服务]>[服务中心]>[多客服]进行申请及设置,详细信息可以见官方公告:https://mp.weixin.qq.com/cgi-bin/readtemplate?t=news/vote_wkd_tmpl&lang=

微信公众号客服接口升级 支持第三方平台调用

客服接口今日又升级了,除了自定义客服头像和昵称外,也支持第三方平台代替公众号管理客服帐号和调用客服接口,需第三方平台接入公众号登录授权(在微信开放平台接入). 客服接口是公众号与用户进行客服回复的关键接口,今日客服接口进行了升级,增加了自定义头像和昵称的能力,帮助公众号以不同的客服身份服务不同用户. 该能力针对所有拥有客服接口权限的公众号开放(微信认证的订阅号和所有服务号,都拥有客服接口权限). 该能力具体表现是,开发者根据开发文档的要求,创建并设置客服帐号的头像和昵称后,微信用户(6.0.2版

微信公告:客服接口升级,增加自定义头像和昵称能力.

客服接口是公众号与用户进行客服回复的关键接口,今日客服接口进行了升级,增加了自定义头像和昵称的能力,帮助公众号以不同的客服身份服务不同用户. 该能力针对所有拥有客服接口权限的公众号开放(微信认证的订阅号和所有服务号,都拥有客服接口权限). 该能力具体表现是,开发者根据开发文档的要求,创建并设置客服帐号的头像和昵称后,微信用户(6.0.2版及以上版本)在与公众号沟通时,开发者可以使用客服帐号身份进行回复,用户将看到对应的客服头像和昵称,注:客服接口升级也支持第三方平台代替公众号管理客服帐号和调用客

asp实现微信客服消息群发,asp代码写的

最近一个客户的需求找到我,他想利用公众号给他的粉丝群发客服消息,想发带图文的客服消息,或是带链接的消息,花几分钟研究了一下,比较简单,上代码: 微信客服消息发送asp代码如下: <% url="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="&Application("wx_token")(0) body="{""touser"