HttpConnectionUtils实现

来源:互联网 发布:怎样利用网络学英语 编辑:程序博客网 时间:2024/06/07 11:48
/**
* 接口调用
* @param url
* @param method
* @param param
* @return
*/
public static JSONObject queryHttpConnectionResult(String urlPath,
String method,String param){
JSONObject jsonObject = new JSONObject();
try{
//urlPath = URLEncoder.encode(param, "utf-8");
    //建立连接
   URL url=new URL(urlPath);
   
   HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();
   //设置参数
   httpConn.setDoOutput(true);   //需要输出
   httpConn.setDoInput(true);   //需要输入
   httpConn.setUseCaches(false);  //不允许缓存
   httpConn.setRequestMethod(method);   //设置POST方式连接
   //设置请求属性
   httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
   httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
   httpConn.setRequestProperty("Charset", "UTF-8");
   httpConn.setRequestProperty("Accept-Charset", "UTF-8");
   //httpConn.setRequestProperty("contentType", "utf-8");
   //连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect
   httpConn.connect();
   //建立输入流,向指向的URL传入参数
   DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream());
   if(param!=null && !param.equals("")){
    dos.write(param.getBytes("UTF-8"));
   }
   dos.flush();
   dos.close();
   
   //获得响应状态
   int resultCode=httpConn.getResponseCode();
   if(HttpURLConnection.HTTP_OK==resultCode){
    StringBuffer sb = new StringBuffer();
    String readLine=new String();
    BufferedReader responseReader=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8"));
    while((readLine=responseReader.readLine())!=null){
    sb.append(readLine).append("\n");
    }
    responseReader.close();
    jsonObject = JSONObject.fromObject(sb.toString());
   }else{
   
   } 
   }catch(Exception ex){
    ex.printStackTrace();
   }
   return jsonObject;
}