小编nas*_*neb的帖子

解析Android中的多部分响应

我正在使用 Multipart HttpPost 将图像和 json 文本从 android 客户端发送到 tomcat 服务器,反之亦然。将多部分实体发送到服务器没什么大不了的,因为您可以使用request.getPart(<name>). 但是在客户端,您只能以流的形式访问响应。所以我最终将 JSON 字符串和图像都附加到相同的后面,ServletOutputStream并且必须在客户端手动解析它们。我在网上找到了 apache-mime4j,但它几乎没有记录,我找不到一个如何使用它的例子。

在服务器端,我构建这样的响应:

ServletResponse httpResponse = ctx.getResponse();
ResponseFacade rf = (ResponseFacade) httpResponse;
rf.addHeader("Access-Control-Allow-Origin", "*");
rf.addHeader("Access-Control-Allow-Methods", "POST");
rf.addHeader("content-type", "multipart/form-data");
httpResponse.setCharacterEncoding("UTF-8");

MultipartResponse multi = new MultipartResponse((HttpServletResponse) httpResponse);
ServletOutputStream out = httpResponse.getOutputStream();

multi.startResponse("text/plain");
out.println(CMD + "#" + content);
multi.endResponse();

multi.startResponse("image/jpeg");
out.write(data);
multi.endResponse();

multi.finish();

ctx.complete();
Run Code Online (Sandbox Code Playgroud)

在 Android 客户端,我想访问文本和图像数据:

InputStream is = response.getEntity().getContent();

MimeStreamParser parser = new MimeStreamParser();
MultipartContentHandler con = new MultipartContentHandler();
parser.setContentHandler(con);

try {
    parser.parse(is);
        String json …
Run Code Online (Sandbox Code Playgroud)

android mime-types

3
推荐指数
1
解决办法
4392
查看次数

标签 统计

android ×1

mime-types ×1