如何确定 HTTP Servlet 请求的内容类型?
Posted
技术标签:
【中文标题】如何确定 HTTP Servlet 请求的内容类型?【英文标题】:How to determine Content Type of a HTTP Servlet Request? 【发布时间】:2015-07-14 22:59:47 【问题描述】:如何在不读取请求正文的情况下从HttpServletRequest
获取内容类型?
当我使用以下内容时,我得到null
:
request.getContentType()
当我尝试使用以下内容读取请求正文中的 JSON 数据时:
StringBuilder jsonsb = new StringBuilder();
BufferedReader jsonbr = request.getReader();
request.getReader()
抛出
Caused by: java.lang.NullPointerException: null
at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106)
我什至尝试使用以下内容并能够获取内容类型,但在此语句之后从请求中获取读者时仍然得到相同的NullPointerException
。
request.getHeader("Accept")
【问题讨论】:
您的请求对象为 null ...因此在调用 getreader() 方法时会引发 nullpointerexception 可能是这个帖子***.com/questions/3433844/… 【参考方案1】:您是否正在处理 GET 请求。这可能不包含 Content-Types 标头,因此您在那里看到的是 null。
【讨论】:
我刚刚注意到,这仅发生在 GET 请求中。那么如何获取 GET 请求的 ContentType 呢? GET 请求将参数作为 JSON 字符串而不是查询字符串发送的情况很少。我想区分这两种情况。以上是关于如何确定 HTTP Servlet 请求的内容类型?的主要内容,如果未能解决你的问题,请参考以下文章