首页 / JAVA / java-HttpMediaTypeNotAcceptableException / HttpMediaTypeNotAcceptableException:找不到可接受的表示形式
java-HttpMediaTypeNotAcceptableException / HttpMediaTypeNotAcceptableException:找不到可接受的表示形式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-HttpMediaTypeNotAcceptableException / HttpMediaTypeNotAcceptableException:找不到可接受的表示形式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4041字,纯文字阅读大概需要6分钟。
内容图文
![java-HttpMediaTypeNotAcceptableException / HttpMediaTypeNotAcceptableException:找不到可接受的表示形式](/upload/InfoBanner/zyjiaocheng/691/5468cfe7382f477f87b5c59f6bb5262a.jpg)
我有一个客户端正在尝试连接的API.但是它抛出错误:
2015 09 22 04:21:44.297 [org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor] Could not parse Accept header: Invalid token character ',' in token "json,application/x-www-form-urlencoded"
2015 09 22 04:21:44.298 [org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] Resolving exception from handler [public org.springframework.http.ResponseEntity<java.lang.String> com.areviews.api.restcontroller.APIOrderController.getNewOrderApi(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.lang.Exception]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
2015 09 22 04:21:44.298 [org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] Invoking @ExceptionHandler method: public org.springframework.web.servlet.ModelAndView com.areviews.web.controller.AbstractController.handleException(java.lang.Exception,javax.servlet.http.HttpServletRequest)
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:115)
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:129)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:74)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
控制器:
@RequestMapping(value = {"order/add"}, method = RequestMethod.POST, produces="application/json; charset=utf-8")
@ResponseBody
public ResponseEntity<String> getNewOrderApi(HttpServletRequest request,
HttpServletResponse response) throws Exception {
.....
return JsonUtils.createJson(jsonObj);
}
他们使用jQuery请求我的API:
$.ajax({
url: "https://api.mywebsite.com/apiv1/order/add",
type: 'POST',
beforeSend: function(xhr) {
xhr.setRequestHeader("Content-Type","application/json;charset=utf-8");
},
data : JSON.stringify(data),
dataType: 'json',
success: function(data) {
if (data.success == true){
console.log(data);
}else{
console.log("error: " + data.error_description);
}
}
});
问题在于他们的请求标头中的“内容类型”为:
Accept:application/json, text/javascript, */*
Accept-Encoding:gzip, deflate
Accept-Language:zh,zh-TW;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:561
Content-Type:application/x-www-form-urlencoded, application/json;charset=UTF-8
我们不知道“ application / x-www-form-urlencoded”来自何处(“,”会产生问题,因为它应该是“;”).我该怎么办?在他们这边可以做什么?
解决方法:
我也面临同样的问题.
我试图使用Volley从Android命中API.
有2种不同的Content-Type.一个是请求标头Content-Type,另一个是主体Content-Type.当您从齐射发起POST或PUT请求时,齐射采用请求标头并检查正文Content-Type.如果未提及主体Content-Type,则凌空将自行添加. Volley结合了Content-Type和我们的服务器只能接受一种Content-Type.但是,由于凌空将Content-Type用作标头和正文,因此它变成了“ application / json,application / x-www-form-urlencoded; charset = utf-8”.
在此,“ application / x-www-form-urlencoded”是请求主体的Content-Type.因此,要解决此问题,可以重写getBodyContentType()方法并返回null.
@Override
public String getBodyContentType() {
//return super.getBodyContentType();
return null;
}
不要使用return“”.使用return“”也会引发异常.
[org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor] Could not parse Accept header: Invalid token character ',' in token "json, "
希望这会有所帮助.
内容总结
以上是互联网集市为您收集整理的java-HttpMediaTypeNotAcceptableException / HttpMediaTypeNotAcceptableException:找不到可接受的表示形式全部内容,希望文章能够帮你解决java-HttpMediaTypeNotAcceptableException / HttpMediaTypeNotAcceptableException:找不到可接受的表示形式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。