[英]Building a Rest Server
我已經學會了如何發送和處理Rest API請求,因此我非常熟悉外部用戶如何通過打開API連接,設置請求方法和處理返回消息等方法向API提交請求。
然而,現在是創建我自己的Rest Web服務的時候了,我有點卡住了,因為我並不完全熟悉服務器如何處理通信。
我可以建立一個很好的連接以便進行通信,但我對連接的細節並不是特別熟悉。
下面是我初始化服務器的方法,然后等待連接並進行簡短的對話,直到客戶端斷開連接。
public void Initialise(){
try {
ServerSocket s = new ServerSocket(21); //TODO: Change port?
while(true){
Socket incoming = s.accept();
Runnable r = new ConnectionManager(incoming);
Thread t = new Thread(r);
t.start();
}
}
catch(IOException e){
e.printStackTrace();
}
}
以及處理連接的類。
public class ConnectionManager implements Runnable{
private Socket incoming;
public ConnectionManager(Socket i){
this.incoming = i;
}
@Override
public void run() {
try{
try{
//Initialise IOStreams
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream, true);
out.println("TODO: Change this message. Press Q to quit.");
boolean done = false;
while (!done && in.hasNextLine()){
String line = in.nextLine();
out.println("Echo: " +line);
if (line.trim().equals("Q")){
done = true;
}
}
}
finally{
incoming.close();
}
}
catch (IOException e){
e.printStackTrace();
}
}
}
我不知道該怎么做,是我如何開始構建一個監聽Rest請求的應用程序,然后相應地處理它們。 我確信在檢查連接后,我將能夠設計處理API請求的功能,但是我不知道如何查看用戶發送的Rest請求的細節。
例如,如果用戶要發送請求,例如
GET exampleAPI/endpoint?params
如何檢查請求,然后相應地處理它?
例如,在客戶端啟動請求時,使用HttpURLConnection等方法可以讓您遵循以下過程:
HttpURLConnection c = (HttpURLConnection) targetURL.openConnection();
c.setRequestMethod("GET");
這將允許您向目標URI提交Get請求。
查看Socket的Java文檔,我不太清楚如何查看傳入請求和活動連接。
我錯過了什么,或者只是完全錯了?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.