使用Java寫 向後臺服務做GET和POST請求
代碼:
Test1.java
建立Http Connection, 向後臺的Servlet做出Get請求
- package test.java_request;
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- class StreamToString{
- public static String ConvertToString(InputStream inputStream){
- InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
- BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
- StringBuilder result = new StringBuilder();
- String line = null;
- try {
- while((line = bufferedReader.readLine()) != null){
- result.append(line + "\n");
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try{
- inputStreamReader.close();
- inputStream.close();
- bufferedReader.close();
- }catch(IOException e){
- e.printStackTrace();
- }
- }
- return result.toString();
- }
- public static String ConvertToString(FileInputStream inputStream){
- InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
- BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
- StringBuilder result = new StringBuilder();
- String line = null;
- try {
- while((line = bufferedReader.readLine()) != null){
- result.append(line + "\n");
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try{
- inputStreamReader.close();
- inputStream.close();
- bufferedReader.close();
- }catch(IOException e){
- e.printStackTrace();
- }
- }
- return result.toString();
- }
- }
- public class Test1 {
- public static void main(String[] args) {
- try{
- URL url = new URL("http://localhost:8090/MyWebProject/Test");
- HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
- //GET Request Define:
- urlConnection.setRequestMethod("GET");
- urlConnection.connect();
- //Connection Response From Test Servlet
- System.out.println("Connection Response From Test Servlet");
- InputStream inputStream = urlConnection.getInputStream();
- //Convert Stream to String
- String responseStr = StreamToString.ConvertToString(inputStream);
- System.out.println(responseStr);
- }catch(IOException e){
- Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, e);
- }
- }
- }
輸出1: (GET)
Test2.java
通過修改urlConnection RequestMethod來做出POST的請求
進而向後臺做Post請求
- package test.java_request;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class Test2 {
- public static void main(String[] args) {
- try{
- URL url = new URL("http://localhost:8090/MyWebProject/Test");
- HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
- //POST Request Define:
- urlConnection.setRequestMethod("POST");
- urlConnection.connect();
- //Connection Response From Test Servlet
- System.out.println("Connection Response From Test Servlet");
- InputStream inputStream = urlConnection.getInputStream();
- //Convert Stream to String
- String responseStr = StreamToString.ConvertToString(inputStream);
- System.out.println(responseStr);
- }catch(IOException e){
- Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, e);
- }
- }
- }
後臺服務的代碼:
TestSertlet.java
- package test.java_request;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class Test2 {
- public static void main(String[] args) {
- try{
- URL url = new URL("http://localhost:8090/MyWebProject/Test");
- HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
- //Post Request Define:
- urlConnection.setRequestMethod("POST");
- urlConnection.connect();
- //Connection Response From Test Servlet
- System.out.println("Connection Response From Test Servlet");
- InputStream inputStream = urlConnection.getInputStream();
- //Convert Stream to String
- String responseStr = StreamToString.ConvertToString(inputStream);
- System.out.println(responseStr);
- }catch(IOException e){
- Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, e);
- }
- }
- }
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)
小結: