java 发送http json请求

  1. import java.io.BufferedReader;  
  2. import java.io.IOException;  
  3. import java.io.InputStream;  
  4. import java.io.InputStreamReader;  
  5. import java.io.OutputStream;  
  6. import java.net.ConnectException;  
  7. import java.net.HttpURLConnection;  
  8. import java.net.URL;  
  9.   
  10. import net.sf.json.JSONObject;  
  11. /** 
  12.  * 发起http请求并获取结果  
  13.  * @author zyz 
  14.  * @date 20140522 
  15.  * 
  16.  */  
  17. public class HttpRequestUtil {  
  18.     /**  
  19.      * 发起http请求并获取结果  
  20.      *   
  21.      * @param requestUrl 请求地址  
  22.      * @param requestMethod 请求方式(GET、POST)  
  23.      * @param outputStr 提交的数据  
  24.      * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)  
  25.      */    
  26.     public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {    
  27.         JSONObject jsonObject = null;    
  28.         StringBuffer buffer = new StringBuffer();  
  29.         InputStream inputStream=null;  
  30.         try {  
  31.             URL url = new URL(requestUrl);  
  32.             HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();    
  33.             httpUrlConn.setDoOutput(true);    
  34.             httpUrlConn.setDoInput(true);    
  35.             httpUrlConn.setUseCaches(false);  
  36.             // 设置请求方式(GET/POST)    
  37.             httpUrlConn.setRequestMethod(requestMethod);    
  38.             if ("GET".equalsIgnoreCase(requestMethod))    
  39.                 httpUrlConn.connect();    
  40.     
  41.             // 当有数据需要提交时    
  42.             if (null != outputStr) {    
  43.                 OutputStream outputStream = httpUrlConn.getOutputStream();    
  44.                 // 注意编码格式,防止中文乱码    
  45.                 outputStream.write(outputStr.getBytes("UTF-8"));    
  46.                 outputStream.close();    
  47.             }  
  48.             //将返回的输入流转换成字符串    
  49.             inputStream = httpUrlConn.getInputStream();    
  50.             InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");    
  51.             BufferedReader bufferedReader = new BufferedReader(inputStreamReader);    
  52.     
  53.             String str = null;    
  54.             while ((str = bufferedReader.readLine()) != null) {    
  55.                 buffer.append(str);    
  56.             }    
  57.             bufferedReader.close();    
  58.             inputStreamReader.close();    
  59.             // 释放资源    
  60.             inputStream.close();    
  61.             inputStream = null;    
  62.             httpUrlConn.disconnect();    
  63.           jsonObject = JSONObject.fromObject(buffer.toString());  
  64.         } catch (ConnectException ce) {    
  65.               ce.printStackTrace();  
  66.               System.out.println("Weixin server connection timed out");  
  67.         } catch (Exception e) {    
  68.                e.printStackTrace();  
  69.                System.out.println("http request error:{}");  
  70.         }finally{  
  71.             try {  
  72.                 if(inputStream!=null){  
  73.                     inputStream.close();  
  74.                 }  
  75.             } catch (IOException e) {  
  76.                 // TODO Auto-generated catch block  
  77.                 e.printStackTrace();  
  78.             }  
  79.         }   
  80.         return jsonObject;    
  81.     }    
  82.   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值