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.  
  83. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值