我知道GET調用不應該有body,但是調用是由其他人開發的,現在我不能改變它。我想要消費一個API,它是GET方法並且帶有有效載荷(json body)。我可以使用傳遞路徑參數但不包含有效載荷的GET方法。我沒有看到爲GET調用發送有效內容的選項。如何使用JAX-RS客戶端通過GET調用發送有效載荷?
這是我正在做的GET調用。
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
Client client = ClientBuilder.newClient();
String targetUri = "http://" + service.getHost() + ":" + service.getPort() + PROFILES_URI;
Response response = client
.target(target)
.path(profileIds.get(0))
.request(MediaType.APPLICATION_JSON)
.get();
如果方法是PUT或POST,我可以發送如下所示的有效載荷。
Client client = ClientBuilder.newClient();
String target = "http://" + service.getHost() + ":" + service.getPort() + PROFILES_URI;
Response response = client
.target(target)
.request(MediaType.APPLICATION_JSON)
.post(Entity.entity(profileIds, MediaType.APPLICATION_JSON));
如何使用GET調用發送有效載荷?
參考:http://www.baeldung.com/jersey-jax-rs-client
GET調用不能有身體。 – Gusman
GET請求不能有有效負載。 – SLaks
您需要執行POST – OldProgrammer