我正在使用Jersey 1.19.1调用网络服务来上传图像: 这是我的代码:
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getClasses().add(MultiPartWriter.class);
FormDataMultiPart formDataMultiPart = new FormDataMultiPart();
formDataMultiPart.bodyPart(new FileDataBodyPart("media", new File("c:/liverpool.png"),MediaType.APPLICATION_OCTET_STREAM_TYPE));
WebResource webResource = Client.create(clientConfig).resource("https://pokgsa.ibm.com/api/gsa/pokgsa/projects/i/imgpicker/Liverpool.png");
ClientResponse resp = webResource.accept("application/json").accept("image/png").header("Authorization", "Basic " + authStringEnc).put(ClientResponse.class,formDataMultiPart);
if(resp.getStatus() != 200){
System.err.println("Unable to connect to the server");
}
String output = resp.getEntity(String.class);
System.out.println("response: "+output);
我遇到此异常:
原因:com.sun.jersey.api.client.ClientHandlerException:不是Java类型com.sun.jersey.multipart.FormDataMultiPart和MIME媒体类型application / octet-stream的消息正文编写器找到
我正在与邮递员尝试相同的服务,并且工作正常,可以上传图片: Postman Upload Image as binary file
如何解决此异常并能够以二进制形式上传图像(从邮递员那里上传图像的表单数据效果不佳)?