我正在使用 jersey(org.glassfish.jersey.client.*) 为我的一个 REST API 编写客户端。
api url 是 : http://localhost:5676/searchws/search/getresults
(POST)
这个 api 返回一个 json 响应。我需要使用泽西客户端提供有效载荷,这就是我卡住的地方。以下是我需要提供的有效负载的示例提取(最好是字符串)
问题是如何将有效负载(XML/JSON)作为字符串或实体提供给我的 webtarget。
我看到了 calden How to send Request payload to REST API in java? 提到的提供有效负载的答案?但我正在寻找一种在泽西客户端中做到这一点的方法。
这是我到目前为止的代码,它不能完全用于发布请求。
public class RequestGenerator
{
private WebTarget target;
private ClientConfig config;
private Client client;
private Response response;
public RequestGenerator(Method RequestSendingMethod) throws Exception
{
switch (RequestSendingMethod)
{
case POST :
config = new ClientConfig();
client = ClientBuilder.newClient(config);
target = client.target("http://localhost:5676/searchws").path("search").path("getresults");
String payload = "{\"query\":\"(filter:(\\\"google\\\")) AND (count_options_availbale:[1 TO *])\"}"; //This is just a sample json payload actual one is pretty large
response = target.request(MediaType.APPLICATION_JSON_TYPE).post(Entity.json("")); // What to do here
String jsonLine = response.readEntity(String.class);
System.out.println(jsonLine);
}
}