https状态代码415甚至指定为Rest-request的一部分的content-type

时间:2016-11-16 05:44:21

标签: java rest http spring-mvc

我的卷曲请求如下。

$ curl -ki -X POST -H "Content-Type:application/json;charset=utf-8" localhost:8081/Customers-Spring-MVC-Hibernate/customer -d '{"name": "anil","age": 1,"phoneNumber": 77955,"email": "pvv.anilkumar@gmail.com","password": "Password"}'

我已经给出了内容类型:application / json但是我点击了415状态代码。 这是我得到的响应,我可以看到Content-Type:text / html正在设置这里是否正确..?

  

Content-Type:text / html; charset = utf-8   内容 - 语言:en   内容长度:1097   日期:2016年11月16日星期三05:29:27 GMT

这是我的控制器定义:

@RequestMapping(method = RequestMethod.POST)
public void addCustomer(
        @RequestBody final CustomerV1 customerDto) throws Exception
{

如果有任何变通办法,请告诉我。 我已经尝试删除并添加charset-utf-8但没有用,我仍然打到415。

如果有任何问题,请添加我的DTO定义.. JSON DTO:

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeName("customer")
public class CustomerV1 {
    private String name;`enter code here`
    private int age;
    private long phoneNumber;
    private String email;
    private String password;

2 个答案:

答案 0 :(得分:0)

尝试在处理程序方法上添加标题,如下所示,

 @RequestMapping(value="/add", method = RequestMethod.POST)
public void addCustomer(
        @RequestBody final CustomerV1 customerDto) throws Exception
    {
       //your code
    }

在你的Github链接中,我发现你在spring-mvc-demo-servlet.xml文件中输入了以下内容,

另请查看文档:{​​{3}}

使用此功能,您无需将JSON显式配置为消耗。

<!-- Configure bean to convert JSON to POJO and vice versa -->
    <beans:bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />

    <!-- Configure to plugin JSON as request and response in method handler -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jsonMessageConverter"/>
        </list>
    </property>
</bean>

答案 1 :(得分:0)

在重度分析和大脑残骸之后,我能够弄清楚问题是什么..

如果任何人面临同样的问题,例如点击415错误......

首先检查其余请求的内容类型..它可能是问题的可能根本原因之一..请看下面关于内容类型的curl请求..

卷曲-v -H“接受:application / json”-H“Content-type:application / json”-X POST -d'{“name”:“anil”,“age”:2,“email” : “anilmar.pvv”, “密码”: “anilkumar”}“http://localhost:8080/MySpringMvc/customer/add

如果所有的内容类型都合适,那么您下载的Jackson-jars存在问题。我最好的建议是在您遇到问题之前删除所有已下载的jar并尝试保持不变通过Jars的版本..下面是我已经制定的版本和顺利执行所需的主要3个依赖项请确保您拥有相同版本的所有3个jar确保它们在类路径上..然后它应该工作正常..下面是我使用的依赖罐,并从迷宫问题中走出来。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.5</version>