【问题标题】:how to return multipart-MIME type message如何返回多部分 MIME 类型的消息
【发布时间】:2013-04-20 05:41:04
【问题描述】:

客户端代码....

HttpPost httpPost = new HttpPost();
MultipartEntity multipartEntity = new MultipartEntity();
FormBodyPart xmlPart = new FormBodyPart("soap-req", new StringBody(returnXml(), "text/xml", Charset.forName("UTF-8")));
multipartEntity.addPart(xmlPart);

FormBodyPart attachPart = new FormBodyPart("taxinvoice", new FileBody(attachPartIS));
attachPart.addField("Content-ID", "<attachPart>");
multipartEntity.addPart(attachPart);

httpPost.setEntity(multipartEntity);
httpPost.addHeader("Soapaction", "\"\"");
httpPost.addHeader("Accept", "text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2");

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(soapPost);

客户端向服务器发送多部分 MIME 消息

我想接收客户端消息并返回多部分 MIME 类型的消息

我在下面尝试过

@Path("/Contact")
@Consumes("multipart/related")
public class ContactService{
    @POST
    @Produces({"text/xml","application/octet-stream"})
    public Response returnMultiPart(InputStream in) throws Exception{
        .....

        return Response.ok(multipartEntity, MediaType.MULTIPART_FORM_DATA).build();
    }
}

错误信息是A message body writer for Java class org.apac....and MIME media type multipart/form-data was not found

Mapped exception to response: 500 (Internal Server Error)

请帮帮我

我只想在我的网络服务上向客户端返回multipart_MIME 类型的消息。

【问题讨论】:

    标签: java web-services response restful-authentication mime-message


    【解决方案1】:
    @Path("/file")
    public class UploadFileService {
    
        @POST
        @Path("/upload")
        @Consumes(MediaType.MULTIPART_FORM_DATA)
        public Response uploadFile(
            @FormDataParam("file") InputStream uploadedInputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail) {
    
            String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName();
    
            // save it
            writeToFile(uploadedInputStream, uploadedFileLocation);
    
            String output = "File uploaded to : " + uploadedFileLocation;
    
            return Response.status(200).entity(output).build();
    
        }
    
        // save uploaded file to new location
        private void writeToFile(InputStream uploadedInputStream,
            String uploadedFileLocation) {
    
            try {
                OutputStream out = new FileOutputStream(new File(
                        uploadedFileLocation));
                int read = 0;
                byte[] bytes = new byte[1024];
    
                out = new FileOutputStream(new File(uploadedFileLocation));
                while ((read = uploadedInputStream.read(bytes)) != -1) {
                    out.write(bytes, 0, read);
                }
                out.flush();
                out.close();
            } catch (IOException e) {
    
                e.printStackTrace();
            }
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 2011-07-25
      • 2011-12-29
      • 2023-03-22
      • 2014-09-07
      • 2022-07-12
      • 2010-09-13
      • 1970-01-01
      • 2013-06-03
      相关资源
      最近更新 更多