NutzCN Logo
问答 请教nutzboot如何处理非标准协议上传
发布于 241天前 作者 文涛(wentao) 278 次浏览 复制 上一个帖子 下一个帖子
标签:

我现在使用@Param("xmlhead") File xh 获取不到文件, 通过body抓取,发现不是标准上传协议,但是这个上传无法修改,所以有没有办法自己做适配,报文是这样的:

--MUltX0kq1OSC2hqr7hRdBe16lrNCFkqQPtQ6M
Content-Disposition: form-data; name="xmlhead"
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

<?xml version="1.0" encoding="UTF-8"?>
<InterNet>
    .....
</InterNet>
--MUltX0kq1OSC2hqr7hRdBe16lrNCFkqQPtQ6M
4 回复

看起来是标准的表单上传。

用VoidAdaptor然后使用req自行解析

发现一个很神奇的情况

@AdaptBy(type= VoidAdaptor.class)
public void test(HttpServletRequest req) {
String xmlHead = req.getParameter("xmlhead");
System.out.println(xmlHead); // 这里取不到
}

改为如下:

private static final MultipartConfigElement MULTI_PART_CONFIG = new MultipartConfigElement("/tmp");

@AdaptBy(type= VoidAdaptor.class)
public void test(HttpServletRequest req) {
req.setAttribute(Request.__MULTIPART_CONFIG_ELEMENT, MULTI_PART_CONFIG);
        for (Part part : req.getParts()) {
            System.out.println("-----类型名称------->"+part.getName());
            System.out.println("-----类型------->"+part.getContentType());
            System.out.println("-----提交的类型名称------->"+part.getSubmittedFileName());
            System.out.println("----流-------->"+part.getInputStream());
        }
    String xmlHead = req.getParameter("xmlhead");
    System.out.println(xmlHead); // 这里可以取到
}
添加回复
请先登陆
回到顶部