zoukankan      html  css  js  c++  java
  • 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.   
    11.         //获取access_token  
    12.         String accessToken = getAccessToken(request);  
    13.   
    14.         //发送模版消息给指定用户  
    15.         String action = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+accessToken;  
    16.   
    17.         System.out.println("json:"+json);  
    18.         try {  
    19.             String result = HttpJsonUtil.sendPost(action, json);  
    20.             System.out.println(result);  
    21.         } catch (Exception e) {  
    22.             e.printStackTrace();  
    23.         }  
    24.     }  



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

    关键代码:

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

    乱码时候的写法是:

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

  • 相关阅读:
    贝塞尔曲线原理(转载)
    无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll
    HDU 3530 Subsequence(单调队列)
    Gym 100247I Meteor Flow(优先队列)
    BZOJ 1040: [ZJOI2008]骑士(基环树dp)
    Gym 100247C Victor's Research(有多少区间之和为S)
    Gym 100247A The Power of the Dark Side
    Gym 100247B Similar Strings(哈希+思维)
    51nod 1405 树的距离之和(dfs)
    51nod 1378 夹克老爷的愤怒(树型dp+贪心)
  • 原文地址:https://www.cnblogs.com/zouhao/p/6900694.html
Copyright © 2011-2022 走看看