HttpURLConnection获取中文数据乱码

package com.hskw.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class HttpRequest {

	 public static String sendGet(String url, String param,String session) throws Exception{
	        String result = "";
	        BufferedReader in = null;
	        try {
	            String urlNameString = url + "?" + param;
	            URL realUrl = new URL(urlNameString);
                    // 打开和URL之间的连接
	            URLConnection connection = realUrl.openConnection();
	            ((HttpURLConnection) connection).setRequestMethod("GET");
                    // 设置通用的请求属性
	            connection.setRequestProperty("accept", "*/*");
	            connection.setRequestProperty("connection", "Keep-Alive");
	            connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
	            
	            connection.setRequestProperty("Cookie", session);

                    // 建立实际的连接
	            connection.connect();
                    // 定义 BufferedReader输入流来读取URL的响应
	            in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
                
                    //使用StringBuffer来拼接字符串
	            StringBuffer buffer = new StringBuffer();
	            String line;
	            while ((line = in.readLine()) != null) {
	            	buffer.append(line);
	            }
	            result = buffer.toString();
	        } catch (Exception e) {
                    System.out.println("发送GET请求出现异常!" + e);
                    e.printStackTrace();
                }// 使用finally块来关闭输入流
	        finally {
	            try {
	                if (in != null) {
	                    in.close();
	                }
	            } catch (Exception e2) {
	                e2.printStackTrace();
	            }
	        }
	        return result;
	   }

	    public static String sendPost(String url, String param,String session) throws Exception{
	        PrintWriter out = null;
	        BufferedReader in = null;
	        String result = "";
	        try {
	            URL realUrl = new URL(url);
                    // 打开和URL之间的连接
	            HttpURLConnection  conn = (HttpURLConnection) realUrl.openConnection();
	            conn.setRequestMethod("POST");
                    // 设置通用的请求属性
	            conn.setRequestProperty("accept", "*/*");
	            conn.setRequestProperty("Content-Type", "application/json");
	            conn.setRequestProperty("connection", "Keep-Alive");
	            conn.setRequestProperty("user-agent",
	                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

	            conn.setRequestProperty("Cookie", session);
                    // 发送POST请求必须设置如下两行
	            conn.setDoOutput(true);
	            conn.setDoInput(true);

                    // 获取URLConnection对象对应的输出流
	            out = new PrintWriter(conn.getOutputStream());
                    // 发送请求参数
	            out.print(param);
                    // flush输出流的缓冲
	            out.flush();
	            
                    // 定义BufferedReader输入流来读取URL的响应
	            in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));

                    //使用StringBuffer来拼接字符串
	            StringBuffer buffer = new StringBuffer();
	            String line;
	            while ((line = in.readLine()) != null) {
	            	buffer.append(line);
	            }
	            result = buffer.toString();
	        } catch (Exception e) {
                    System.out.println("发送POST请求出现异常!" + e);
                    e.printStackTrace();
                }// 使用finally块来关闭输入流
                finally{
	                try{
	                    if(out!=null){
	                        out.close();
	                    }
	                    if(in!=null){
	                        in.close();
	                    }
	                }catch(IOException ex){
	                    ex.printStackTrace();
	                }
	         }
	         return result;
	    }    

}

 

你可能感兴趣的:(HttpURLConnection获取中文数据乱码)