我无法成功命中API。我需要在POST请求的正文和标头中传递三个值:"Content-Type":"application/x-www-form-urlencoded"
。
我的状态为400,与此同时:
Content-Type=[application/json;charset=UTF-8]
,有人可以在这里向我指出正确的方向吗?
Client client = ClientBuilder.newClient();
WebTarget webTarget = client.target(REST_URI).path("dummy/dummy"); // REST_URI is a constant containing the URL
// Create body content
String json = Json.createObjectBuilder()
.add("grant_type", "password")
.add("username", USERNAME) // USERNAME/PASSWORD are constants
.add("password", PASSWORD)
.build()
.toString();
Response response = webTarget.request(MediaType.APPLICATION_FORM_URLENCODED)
//.header("Content-Type", "application/x-www-form-urlencoded")
.accept(MediaType.APPLICATION_FORM_URLENCODED)
.post(Entity.entity(json, MediaType.APPLICATION_JSON));
答案 0 :(得分:1)
您可以尝试以下代码。您必须在提及内容类型的地方使用.type()方法。
Response response = webTarget.resource(URL)
.accept(MediaType.APPLICATION_JSON)
.type(MediaType.APPLICATION_JSON)
.post(Entity.entity(json, MediaType.APPLICATION_JSON));
您还可以从以下链接中了解如何建立客户关系。
https://howtodoinjava.com/jersey/jersey-restful-client-examples/#post