java跨服務器請求url獲得數據


在項目中,有時需要通過請求遠程服務器上的url獲取數據(前提是程序所在服務器可以和url服務器ping成功),

用java在后台發送請求時,用到了java.net.URL, java.net.URLConnection,

以下是分別用post和get方式請求url的簡單工具類實現:

 1 import java.io.BufferedReader;
 2 import java.io.InputStreamReader;
 3 import java.io.PrintWriter;
 4 import java.net.URL;
 5 import java.net.URLConnection;
 6 import java.util.List;
 7 import java.util.Map;
 8 
 9 public class CallWebPage {
10     /**
11      * 用get方式連接url
12      * @param urlString url路徑
13      * @param pdata    url參數
14      * @return 從url獲得的數據
15      */
16     public static String CallWebPageGet(String urlString,String pdata) {
17         String result="";
18         PrintWriter out = null;  
19         BufferedReader in = null; 
20         URL url=null;
21         try {
22             url = new URL(urlString+"?"+pdata);//用url路徑以及所用參數創建URL實例類
23             URLConnection connect = url.openConnection();//創建連接
24             connect.setRequestProperty("content-type","application/x-www-form-urlencoded;charset=utf-8");//設置請求header的屬性--請求內容類型
25             connect.setRequestProperty("method","GET");//設置請求header的屬性值--請求方式
26             // 建立實際的連接  
27             connect.connect();  //建立與url所在服務器的連接
28             // 獲取所有響應頭字段  
29             Map<String, List<String>> map = connect.getHeaderFields();  
30             // 遍歷所有的響應頭字段  
31             for (String key : map.keySet()) {  
32                 System.out.println(key + "--->" + map.get(key));  
33             }  
34             // 定義BufferedReader輸入流來讀取URL的響應  
35             in = new BufferedReader(new InputStreamReader(connect.getInputStream()));  
36             String line="";  
37             while ((line = in.readLine()) != null) {  
38                 result +=  line;  
39             }  
40         } catch (Exception e) {
41             // TODO Auto-generated catch block
42             e.printStackTrace();
43         }
44         
45         return result;
46     }
47     /**
48      * 用gpost方式連接url
49      * @param urlString url路徑
50      * @param pdata    url參數
51      * @return 從url獲得的數據
52      */
53     public static String CallWebPagePost(String urlString,String pdata) {
54         String result="";
55         PrintWriter out = null;  
56         BufferedReader in = null; 
57         URL url=null;
58         try {
59             url = new URL(urlString);
60             URLConnection connect = url.openConnection();
61             connect.setRequestProperty("content-type","application/x-www-form-urlencoded;charset=utf-8");
62             connect.setRequestProperty("method","POST");
63             byte[] bytes= pdata.getBytes("utf-8") ;
64             connect.setDoOutput(true);  
65             connect.setDoInput(true);  
66             
67             out = new PrintWriter(connect.getOutputStream());  
68             // 發送請求參數  
69             out.print(pdata);
70             out.flush();  
71             // 定義BufferedReader輸入流來讀取URL的響應  
72             in = new BufferedReader(new InputStreamReader(connect.getInputStream()));  
73             String line;  
74             while ((line = in.readLine()) != null) {  
75                 result +=  line;  
76             }      
77         } catch (Exception e) {
78             // TODO Auto-generated catch block
79             e.printStackTrace();
80         }
81         
82         return result;
83     }
84 }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM