public static String requestByPost(String urlpath,String requestData) throws IOException{
 // HTTP connection reuse which was buggy pre-froyo      
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
          
      
URL url = new URL(urlpath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
 conn.setDoInput(true);
 conn.setConnectTimeout(TIMEOUT);
 conn.setReadTimeout(TIMEOUT);
 conn.setRequestMethod("POST");
 conn.setDoOutput(true);
 //需要设置 gzip的请求头 才可以获取Content-Encoding响应码
 conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
 conn.connect();
 String urlEncodedRequestStr = URLEncoder.encode(requestData,"utf-8");
 String requestStr = "jsonStr="+urlEncodedRequestStr;
 conn.getOutputStream().write(requestStr.getBytes("utf-8"));
 conn.getOutputStream().flush();
 conn.getOutputStream().close();
 // //获取所有响应头字段
 //    Map< String,List< String>> map = conn.getHeaderFields();
 //    //遍历所有的响应头字段
 //    if(null!=map){
 //      for (String key : map.keySet()){
 //      System.out.println(key + "--->" + map.get(key));
 //      }
 //    }
 String content_encode = conn.getContentEncoding();
 System.out.println("content_encode:"+content_encode);
 // int responseCode = conn.getResponseCode();
 // System.out.println("responseCode:"+responseCode);
 // if(responseCode != 200){
 // String message = conn.getResponseMessage();
 // throw new IOException("ResponseCode:"+responseCode+",Message:"+message);
 // }//如果是gzip的压缩流 进行解压缩处理
 if(null!=content_encode&&!"".equals(content_encode)&&content_encode.equals("gzip")){
 GZIPInputStream in = new GZIPInputStream(conn.getInputStream());
 if(in == null){
 return "";
 }
 ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
 int len ;
 byte [] buffer = new byte[1024];
 while((len=in.read(buffer))!= -1){
 arrayOutputStream.write(buffer, 0, len);
 }
 in.close();
 arrayOutputStream.close();
 conn.disconnect();
 str = new String(arrayOutputStream.toByteArray(),"utf-8");
 //正常流处理
 }else{
 InputStream in = conn.getInputStream();
 if(in == null){
 return "";
 }
 ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
 int len ;
 byte [] buffer = new byte[1024];
 while((len=in.read(buffer))!= -1){
 arrayOutputStream.write(buffer, 0, len);
 }
 in.close();
 arrayOutputStream.close();
 conn.disconnect();
 str = new String(arrayOutputStream.toByteArray(),"utf-8");
 }
 return str;
 }

添加的注释是项目中实际遇到的问题,记下来小小总结下!