我正在嘗試向使用 javax.ws.rs 實作的 REST 介面發送請求并為其提供一些查詢引數,但查詢引數沒有到達介面。
發送端實作如下:
WebTarget target = webTarget.path("test").path("Testuser");
target.queryParam("a","a");
System.out.println(target.getUri());
Response response = target.request().get();
界面:
@GET
@Path("test/{username}")
public void test(
@PathParam("username") String username,
@QueryParam("a") String a) {
System.out.println("TEST here!");
System.out.println("username: " username);
System.out.println("a: " a);
}
發送方的輸出是沒有任何查詢引數的純 URL。
介面端的輸出是
TEST here!
username: Testuser
a: null
我無法看到我的錯誤在哪里,以及為什么 a 在界面中沒有被接收。
uj5u.com熱心網友回復:
您忽略了該queryParam方法的結果。該方法不會修改現有實體 - 它回傳一個新實體,就像這樣path做一樣。從檔案:
通過在當前目標實體的 URI 上配置查詢引數來創建一個新的 WebTarget 實體。
只需將您的代碼更改為:
WebTarget target = webTarget.path("test").path("Testuser").queryParam("a", "a");
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/409924.html
標籤:
