java - 我应该如何在 Tomcat servlet 中解析 POST 请求消息的内容

标签 java json tomcat servlets httprequest

我正在尝试在 Tomcat 中开发一个 Java servlet 来处理发布请求,最终打算处理文件并在对客户端的响应中返回所述处理过的文件。根据我目前的搜索,我将要处理的请求似乎采用了一种不寻常的格式。我可以提出替代方案,但我无法控制请求的设计,如下所示:

POST /api/0/actions/image HTTP/1.1
Host: <host>.com
Content-Length: <content-length>
Content-Type: multipart/form-data; boundary=<boundary>
Accept-Encoding: gzip, deflate, compress
Accept: */*
User-Agent: <user-agent>

--<boundary>
Content-Disposition: form-data; name="application"

{<authentication_info_as_JSON_object>}
--<boundary>
Content-Disposition: form-data; name="inputName"

<inputname>
--<boundary>
Content-Disposition: form-data; name="options"

{<options_as_JSON}
--<boundary>
Content-Disposition: form-data; name="input"; filename="<inputname>"
Content-Type: <content-type>

<file-binary>
--<boundary>--

我可以使用正则表达式和标准字符串处理方法将此请求的内容解析为文本,重建我需要手动处理的 JSON 对象和文件。但我认为这是一种容易出错且难以维护的方法。是否有开源工具可以帮助我以更结构化或更标准的方式处理此请求?

提前致谢。

最佳答案

这有什么不同寻常之处?

使用Apache Commons' FileUpload或等效的。

如果您使用的是 Servlet 3.0 容器,则这是内置的,例如 HttpServletRequest.getParts()

关于java - 我应该如何在 Tomcat servlet 中解析 POST 请求消息的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258570/

相关文章:

java - 如何为几个 Java 枚举添加常用方法? (抽象类的祖先?)

java - Spring自定义身份验证过滤器和提供者不调用 Controller 方法

java - 如何从远程存储库下载 Maven Artifact 到本地文件夹?

java - Jackson Java 到 JSON 对象映射器修改字段名称

android - 无法解决错误 BEGIN_ARRAY 但为 BEGIN_OBJECT

ruby-on-rails - 将 Tomcat 用于 Jruby Rack 应用程序有哪些替代方案?

tomcat - 我在Intellij Idea中配置Tomcat服务器时,提示 "port is not specified"

java - 在 WAR 文件的 lib 目录中包含源 JAR(Web 应用程序的)

java - java中的对象和引用

javascript - 如何从嵌套 JSON 响应 Angular.js 列出项目(渲染)