使用HttpURLConnection发请求获取数据

来源:互联网 发布:淘宝代购衣服专柜真假 编辑:程序博客网 时间:2024/06/04 22:48

使用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. }  

 

测试结果: