HttpURLConnection及乱码解决

当我们在程序中访问远程服务器的接口时,有时会遇到中文乱码的问题,这里提供一种解决方案。

这里使用InputStreamReader 和BufferedReader

/**
     * 从xx系统拉取用户信息
     * @param userAccount
     * @return
     */
    public static String getUserInfo(String userAccount,String pathType) {
        String[] serverInfo = getServerInfo(getUserInfo);
        String serverPath = composeServerPath(serverInfo,userAccount,pathType);

        String result = "";
        HttpURLConnection connection = null;

        try {
            URL url = new URL(serverPath);
            connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "application/json");
            connection.setRequestProperty("contentType", "utf-8");
            connection.setRequestProperty("Accept-Charset", "utf-8");
            if (connection.getResponseCode() != 200) {
                log.error("连接失败!");
            } else {
                InputStreamReader in = null;
                in = new InputStreamReader(connection.getInputStream(),"utf-8");
                BufferedReader bufferedReader = new BufferedReader(in);

                StringBuffer stringBuffer = new StringBuffer();
                String line = null;
                while ((line = bufferedReader.readLine()) != null) {
                    stringBuffer.append(line);
                }
                result = stringBuffer.toString();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (connection != null)
                connection.disconnect();
        }

        return result;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,123评论 1 114
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,429评论 11 349
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,930评论 0 62
  • 身心俱疲 我在这里深刻反思,我这样是不对的 剥虾,剥生的虾,头尾各留一截,剥了整整一大盆。剥鹌鹑蛋,溏心的,强迫症...
    小黄丫阅读 754评论 0 0