Java建立URL請求

Java建立URL請求

簡述:

使用Java寫 向後臺服務做GET和POST請求


代碼:

Test1.java

建立Http Connection, 向後臺的Servlet做出Get請求

[java] view plaincopy
  1. package test.java_request;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.FileInputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.InputStreamReader;  
  8. import java.net.HttpURLConnection;  
  9. import java.net.URL;  
  10. import java.util.logging.Level;  
  11. import java.util.logging.Logger;  
  12.   
  13. class StreamToString{  
  14.     public static String ConvertToString(InputStream inputStream){  
  15.         InputStreamReader inputStreamReader = new InputStreamReader(inputStream);  
  16.         BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  
  17.         StringBuilder result = new StringBuilder();  
  18.         String line = null;  
  19.         try {  
  20.             while((line = bufferedReader.readLine()) != null){  
  21.                 result.append(line + "\n");  
  22.             }  
  23.         } catch (IOException e) {  
  24.             e.printStackTrace();  
  25.         } finally {  
  26.             try{  
  27.                 inputStreamReader.close();  
  28.                 inputStream.close();  
  29.                 bufferedReader.close();  
  30.             }catch(IOException e){  
  31.                 e.printStackTrace();  
  32.             }  
  33.         }  
  34.         return result.toString();  
  35.     }  
  36.   
  37.   
  38.     public static String ConvertToString(FileInputStream inputStream){  
  39.         InputStreamReader inputStreamReader = new InputStreamReader(inputStream);  
  40.         BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  
  41.         StringBuilder result = new StringBuilder();  
  42.         String line = null;  
  43.         try {  
  44.             while((line = bufferedReader.readLine()) != null){  
  45.                 result.append(line + "\n");  
  46.             }  
  47.         } catch (IOException e) {  
  48.             e.printStackTrace();  
  49.         } finally {  
  50.             try{  
  51.                 inputStreamReader.close();  
  52.                 inputStream.close();  
  53.                 bufferedReader.close();  
  54.             }catch(IOException e){  
  55.                 e.printStackTrace();  
  56.             }  
  57.         }  
  58.         return result.toString();  
  59.     }  
  60. }  
  61.   
  62. public class Test1 {  
  63.     public static void main(String[] args) {  
  64.         try{  
  65.             URL url = new URL("http://localhost:8090/MyWebProject/Test");  
  66.             HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();  
  67.             //GET Request Define:   
  68.             urlConnection.setRequestMethod("GET");  
  69.             urlConnection.connect();  
  70.               
  71.             //Connection Response From Test Servlet  
  72.             System.out.println("Connection Response From Test Servlet");  
  73.             InputStream inputStream = urlConnection.getInputStream();  
  74.               
  75.             //Convert Stream to String  
  76.             String responseStr = StreamToString.ConvertToString(inputStream);  
  77.             System.out.println(responseStr);  
  78.         }catch(IOException e){  
  79.             Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, e);  
  80.         }  
  81.     }  
  82. }  


輸出1: (GET)



Test2.java

通過修改urlConnection RequestMethod來做出POST的請求

進而向後臺做Post請求

[java] view plaincopy
  1. package test.java_request;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.net.HttpURLConnection;  
  6. import java.net.URL;  
  7. import java.util.logging.Level;  
  8. import java.util.logging.Logger;  
  9.   
  10. public class Test2 {  
  11.     public static void main(String[] args) {  
  12.         try{  
  13.             URL url = new URL("http://localhost:8090/MyWebProject/Test");  
  14.             HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();  
  15.             //POST Request Define:   
  16.             urlConnection.setRequestMethod("POST");   
  17.             urlConnection.connect();  
  18.               
  19.             //Connection Response From Test Servlet  
  20.             System.out.println("Connection Response From Test Servlet");  
  21.             InputStream inputStream = urlConnection.getInputStream();  
  22.               
  23.             //Convert Stream to String  
  24.             String responseStr = StreamToString.ConvertToString(inputStream);  
  25.             System.out.println(responseStr);  
  26.         }catch(IOException e){  
  27.             Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, e);  
  28.         }  
  29.     }  
  30. }  

後臺服務的代碼:

TestSertlet.java

[java] view plaincopy
  1. package test.java_request;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.net.HttpURLConnection;  
  6. import java.net.URL;  
  7. import java.util.logging.Level;  
  8. import java.util.logging.Logger;  
  9.   
  10. public class Test2 {  
  11.     public static void main(String[] args) {  
  12.         try{  
  13.             URL url = new URL("http://localhost:8090/MyWebProject/Test");  
  14.             HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();  
  15.             //Post Request Define:   
  16.             urlConnection.setRequestMethod("POST");  
  17.             urlConnection.connect();  
  18.               
  19.             //Connection Response From Test Servlet  
  20.             System.out.println("Connection Response From Test Servlet");  
  21.             InputStream inputStream = urlConnection.getInputStream();  
  22.               
  23.             //Convert Stream to String  
  24.             String responseStr = StreamToString.ConvertToString(inputStream);  
  25.             System.out.println(responseStr);  
  26.         }catch(IOException e){  
  27.             Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, e);  
  28.         }  
  29.     }  
  30. }  



public String getHTML(String httpUrl, String Charset) {
		String html = "";

		try {
			URL url = new URL(httpUrl.toString());
			StringBuffer document = new StringBuffer();
			try {
				URLConnection urlCon = (HttpURLConnection) url.openConnection();
				BufferedReader reader = new BufferedReader(
						new InputStreamReader(urlCon.getInputStream()));
				String Result = "";
				while ((Result = reader.readLine()) != null) {
					document.append(Result);
					// System.out.println(Result);
				}

				html = document.toString();
			} catch (IOException e) {
				html = "服務未響應";

			}
		} catch (MalformedURLException e) {
			html = "不支持的協議";

		}

		return html;
	}




輸出2:(POST)



小結:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章