使用HttpURLConnection发请求获取数据

使用HttpURLConnection发请求获取数据

 

参考代码:

Java代码   收藏代码
  1. import java.io.BufferedReader;  
  2. import java.io.IOException;  
  3. import java.io.InputStreamReader;  
  4. import java.io.OutputStream;  
  5. import java.net.HttpURLConnection;  
  6. import java.net.URL;  
  7.   
  8. / 
  9.   功能说明:HttpClient - 通过发送Http请求获取目标URL的数据 
  10. /  
  11. public class HttpClient {  
  12.       
  13.     / 提交方式POST /  
  14.     public static final String SUBMIT_METHOD_POST = “POST”;  
  15.       
  16.     / 提交方式GET /  
  17.     public static final String SUBMIT_METHOD_GET = “GET”;  
  18.       
  19.   
  20.     / 
  21.       通过http请求获取数据 
  22.       @param urlStr    url地址,如:www.baidu.com 
  23.       @param param     url的?后的参数,如:www.baidu.com?a=1&&b=2,则param为”a=1&&b=2” 
  24.       @return          返回读取到的数据(json字符串) 
  25.      /  
  26.     public static String pub(String urlStr,String param,String method)  
  27.     {  
  28.         URL url = null;  
  29.         HttpURLConnection connection = null;  
  30.         StringBuffer buffer = new StringBuffer();  
  31.         System.out.println(”request:”+urlStr+“?”+param);  
  32.         try {  
  33.             /建立连接/    
  34.             url = new URL(urlStr);  
  35.             connection = (HttpURLConnection) url.openConnection();  
  36.               
  37.             /设置连接属性 /  
  38.             connection.setDoOutput(true);// 使用 URL 连接进行输出     
  39.             connection.setDoInput(true);// 使用 URL 连接进行输入     
  40.             connection.setUseCaches(false);// 忽略缓存     
  41.             connection.setRequestMethod(method);// 设置URL请求方法     
  42.               
  43.             /设置请求属性/  
  44.             connection.setRequestProperty(”Content-Length”,param.length()+“”);  
  45.             connection.setRequestProperty(”Content-Type”“application/octet-stream”);     
  46.             connection.setRequestProperty(”Connection”“Keep-Alive”);// 维持长连接     
  47.             connection.setRequestProperty(”Charset”“UTF-8”);// 设置编码  
  48.               
  49.             /建立输出流,并写入数据/   
  50.             OutputStream outputStream = connection.getOutputStream();  
  51.             outputStream.write(param.getBytes(”UTF-8”));  
  52.               
  53.             /读取数据/  
  54.             BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), “UTF-8”));              
  55.             String line = ”“;  
  56.             while ((line = reader.readLine()) != null) {  
  57.                 buffer.append(line);  
  58.             }  
  59.             reader.close();  
  60.         } catch (IOException e) {  
  61.             e.printStackTrace();  
  62.         } finally {  
  63.             if (connection != null) {  
  64.                 connection.disconnect();  
  65.             }  
  66.         }  
  67.         System.out.println(”response:”+buffer.toString());  
  68.         return buffer.toString();  
  69.     }  
  70.       
  71.     /测试*/  
  72.     public static void main(String[] args) {  
  73.         pub(http://f.apiplus.cn/ssq.json“a=1”,SUBMIT_METHOD_POST);  
  74.     }  
  75. }  
 

 

测试结果: 


 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值