我製作了一個REST客戶端服務器,並且一切工作正常或多或少。這就是困境:我有一個選擇可以通過用戶名來檢索用戶,當用戶真正存在時它可以正常工作。然而,當他沒有時,我得到204個http代碼,這很好,因爲我做了一個空歸零。我想我的方法返回一個普通的字符串到客戶端控制檯,當沒有用戶被發現,說:「沒有這樣的用戶發現...」,但方法返回類型是用戶(類)邏輯,以返回一個用戶對象時被發現。 下面是服務器端:REST服務返回
@GET
@Path("/{uName}")
@Produces({ "application/json", "application/xml"})
public User getUserByUsername(@PathParam("uName") String uName) {
returnAll = usrList.getUsers();
for (User u : returnAll) {
if (u.getUserName().equals(uName))
return u;
}
return null;
}
這裏是客戶端的相關部分:
case 3:
sc.nextLine();
System.out.println("Enter username");
userName = sc.nextLine();
restConnect("http://localhost:8080/rest/user/"
+ userName, "GET");
promptKey();
更改爲返回一個字符串類型顯然會擾亂代碼時,用戶實際上找到了一個方法。我能做些什麼來使兩種類型的返回功能?謝謝
編輯: 當用戶被發現時,我的方法將返回列表中的第一個用戶get(0)
這是錯誤的。這是我的殘留檢測與ID的
EDITx2東西:工作客戶
當錯誤 case 3:
sc.nextLine();
System.out.println("Enter username");
userName = sc.nextLine();
try{
restConnect("http://localhost:8080/rest/user/"
+ URLEncoder.encode(userName, "UTF-8"), "GET");
}
catch(RuntimeException e){
System.out.println("No such user...");
}
promptKey();
爲什麼不拋出異常和HTTP狀態說500?或者爲什麼不使用NullObjectPattern並返回dummy用戶呢? – SMA
因爲我想要一個用戶友好的信息:) – Norgul