Android의 Jersey 클라이언트 API를 사용하여 Multipart-form-data POST 요청에 문제가 있습니다. 필자는 웹에서 다양한 예제를 따라 왔으며 구현과 관련하여 모두 비슷합니다.저지 클라이언트 + 멀티 파트 양식 데이터 + MessageBodyWriter 문제
Client client = createClientInstance();
WebResource r = client.resource(BASEURL).path("DataUpload");
ClientResponse post;
try {
FormDataMultiPart multiPart = new FormDataMultiPart();
multiPart.field("account", account);
multiPart.field("checksum", checksum);
multiPart.bodyPart(new FileDataBodyPart("file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE));
post = r.type(MediaType.MULTIPART_FORM_DATA)
.accept(MediaType.TEXT_PLAIN)
.post(ClientResponse.class, multiPart);
} catch (ClientHandlerException e) {
Log.e(TAG, e.getLocalizedMessage());
} finally {
client.destroy();
}
내 장치에서이 코드를 실행 는, 나는 예외 제시하고있다 :
javax.ws.rs.WebApplicationException: java.lang.IllegalArgumentException: No MessageBodyWriter for body part of type 'java.io.File' and media type 'application/octet-stream'
나는 뉴저지는 여분의 구성없이 파일 객체를 처리 할 줄 알았는데. 바디 라인을 제거하면 Jersey가 요청을 할 수있게되지만 그 점이 제거됩니다.
- 저지 - 클라이언트 1.14
- 저지 코어 - 1.14
- 저지 - 다중 - 1.14
- :
나는 (메이븐으로 뽑아되었다) 내 buildpath 이러한 라이브러리가 mimepull-1-6 나는 시도하는 두 가지 제안 할 수 있습니다
http://stackoverflow.com/questions/9710953/trasferring-files-and-data-with-jersey가 도움이 될까요? – smk
내 문제는 안드로이드에 의한 Jersey 클래스의 부적절한 로딩과 관련이있는 것으로 보입니다. 나는 [여기] (http://stackoverflow.com/questions/9342506/jersey-client-on-android-nullpointerexception/10676918#10676918)에 나열된 해결 방법을 사용했지만 모든 솔루션을로드하지 않았기 때문에 그 해결책은 불완전했습니다. 내 응용 프로그램에 필요한 수업. [원래 나열된 전체 클래스] (http://jersey.576304.n2.nabble.com/java-lang-NullPointerException-on-Android-tt4212447.html#a5459910)를 추가하면 파일 업로드. – KC89