Java 메소드에서 Jersey 클라이언트 객체를 사용하여 RESTful 웹 서비스 (Jersey를 사용하여 작성 됨)에서 POST 작업을 수행하지만 사용 방법을 잘 모르겠습니다. 서버에서 FormParam으로 사용될 값을 보낼 클라이언트. 나는 단지 쿼리 매개 변수를 보낼 수있다. 사전에Jersey 클라이언트를 사용하여 POST 작업 수행
감사합니다.
Java 메소드에서 Jersey 클라이언트 객체를 사용하여 RESTful 웹 서비스 (Jersey를 사용하여 작성 됨)에서 POST 작업을 수행하지만 사용 방법을 잘 모르겠습니다. 서버에서 FormParam으로 사용될 값을 보낼 클라이언트. 나는 단지 쿼리 매개 변수를 보낼 수있다. 사전에Jersey 클라이언트를 사용하여 POST 작업 수행
감사합니다.
나 자신도 아니지만 Google-Fu의 빠른 비트는 사용자가 요청한 것과 정확히 일치하는 예를 사용하여 tech tip on blogs.oracle.com입니다. 블로그 게시물에서 가져온
예 : 어떤 도움도 그
MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("name1", "val1");
formData.add("name2", "val2");
ClientResponse response = webResource
.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.post(ClientResponse.class, formData);
?
또한 당신이 시도 할 수 있습니다 :
MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("name1", "val1");
formData.add("name2", "val2");
webResource.path("yourJerseysPathPost").queryParams(formData).post();
를 사용하면 파일 업로드를 할 필요가 있다면, 당신은 MediaType.MULTIPART_FORM_DATA_TYPE를 사용해야합니다. MultivaluedMap을 사용할 수 없으므로 FormDataMultiPart의 솔루션을 참조하십시오. 저지 2.X에서 시작
InputStream stream = getClass().getClassLoader().getResourceAsStream(fileNameToUpload);
FormDataMultiPart part = new FormDataMultiPart();
part.field("String_key", "String_value");
part.field("fileToUpload", stream, MediaType.TEXT_PLAIN_TYPE);
String response = WebResource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(String.class, part);
는 MultivaluedMapImpl
클래스는 MultivaluedHashMap
로 대체됩니다. 당신은 서버에 양식 데이터를 추가하고 전송하는 데 사용할 수 있습니다 : 양식 개체가 "application/x-www-form-urlencoded"
의 형식으로 전송되는 것을
WebTarget webTarget = client.target("http://www.example.com/some/resource");
MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
formData.add("key1", "value1");
formData.add("key2", "value2");
Response response = webTarget.request().post(Entity.form(formData));
참고.
간단한 :
Form form = new Form();
form.add("id", "1");
form.add("name", "supercobra");
ClientResponse response = webResource
.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.post(ClientResponse.class, form);
그것은 이제 Jersey Client documentation
실시 예 5.1의 첫번째 예이다.
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:9998").path("resource");
Form form = new Form();
form.param("x", "foo");
form.param("y", "bar");
MyJAXBBean bean =
target.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE),
MyJAXBBean.class);
링크 형태로 매개 변수를 POST 요청 – orique