HttpURLConnection以post傳數據時中文亂碼

public static String readContentFromPost(String url, String content) throws IOException {
        URL postUrl = new URL(url);
        HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.setUseCaches(false);
        connection.setInstanceFollowRedirects(true);
        connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
        connection.connect();
        DataOutputStream out = new DataOutputStream(connection
                .getOutputStream());

        //out.writeBytes(content);
        //用這個會導致中文亂碼
        out.write(content.getBytes());
        out.flush();
        out.close();
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String result="";
        String line;

        while ((line = reader.readLine()) != null){
            result += line;
        }
        reader.close();
        connection.disconnect();
        return result;
    }

原因可以參考亂碼
其中content格式json格式字符串

telName=一段碼&chute=1&packProperty=分撥&smallNum=1
Map<String,Object> map=new HashMap<>();
****存放參數***
String reqData="";
        for (String key:map.keySet()){
            reqData+=key+"="+map.get(key)+"&";
        }
        String content=reqData.substring(0,reqData.length()-1);
發佈了31 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章