当前位置: 首页 > 知识库问答 >
问题:

Spring POST失败HTTP 415和400

姬欣怡
2023-03-14

我正在尝试使用fiddler对SpringRestAPI进行POST调用,

@RequestMapping(value = "/GetPlanByBasicContext/", method = RequestMethod.POST)
public @ResponseBody TravelPlan getPlanByBasicContext(@RequestBody BasicPlanContext b) {
    return planService.getPlan(b));
}

对小提琴手的要求:

http://localhost:8080/now/travelPlan/GetPlanByBasicContext/

标题:

User-Agent: Fiddler
Host: localhost:8080
Content-Length: 248

POST有效载荷:

{
    "sourceLocation": "",
    "destinationLocation": "",
    "modeOfTransport": "car", 
    "travellers": {
        "age1to16": 0,
        "age17to30": 0,
        "age31to50": 0,
        "age50plus": 0
    },
    "dates": {
        "startDate": "",
        "endDate": ""
    }
}

有效负载中的属性与BasicPlanContext类中的属性相同,以及getter和setter。

我发现以下错误:

 415 Unsupported Media Type
 The server refused this request because the request entity is in a format not supported 
 by the requested resource for the requested method.

尝试将@Request estbody替换为@ModelAtort,但没有帮助。

我还有以下库:

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

编辑1:尝试将以下内容添加到标题,

Content-Type: application/json

遵循POST方法,

@RequestMapping(..., headers="Accept=application/json")

这导致客户端发送的请求在语法上不正确

共有1个答案

唐阳飙
2023-03-14

您试图发送JSON负载,但服务器拒绝了状态为415的请求,这表明请求的媒体类型导致了问题。

首先,您需要定义请求方法接受JSON有效负载

@RequestMapping(..., headers="Accept=application/json")

并且fiddler请求应该包括标头

Content-Type: application/json
 类似资料:
  • 我尝试运行这个gradle任务(通过gradlew) 它使用cucmber jvm 并收到此错误 当我从cmd中的同一路径运行同一行时: 更新1: 这个cmd在shell控制台中工作: ./构建/发行版/WebLarge测试/bin/WebLargeTests-f html:构建/报告/cucumber/-f json:构建/报告/cucumber/report.json--胶水com.waze.

  • 我的问题很简单(但我不知道如何解决它),我安装了netbeans的最后一个版本(8.1),我激活了Java EE Java Se模块,并在我的系统上安装了glassfish&tomcat 8.0.27.0。 问题是:Glassfish开始的很好,但tomcat不管serveur的版本或位置都不会启动,我唯一的输出是: Le fichier SP,CIFI,est INTROUVABLE。 使用ca

  • HBase和Hadoop在Docker中是CDH独立模式。ZK、HBASE、Phoenix使用shell都可以操作。java操作zk也可以,但是java不能操作Hbase和phoenix,代码可以。有人能帮我吗,谢谢!

  • 主要内容:1 ArrayList的概述,2 ArrayList的源码解析,2.1. 主要类属性,2.2 构造器与初始化容量,2.3 add方法与扩容机制,2.4 addAll方法,2.5 remove方法,2.6 get方法,2.7 set方法,2.8 clone方法,2.9 序列化,2.10. 其他方法,3 迭代器,3.1 Iterator迭代器,3.2 ListIterator列表迭代器,4 快速失败(fail-fast)与安全失败(fail-safe)机制,,,基于JDK1.8对Java中

  • 我刚从自制软件在mac上安装了mysql 从终端它工作,我可以登录到mysql,但从Sequel Pro它说 无法连接到主机127.0.0.1,或者请求超时。 确保地址正确,并且您拥有必要的权限,或者尝试增加连接超时(当前为10秒)。 MySQL表示:无法加载身份验证插件“caching_sha2_password”:dlopen(/usr/local/lib/plugin/caching_sha

  • 我在android上创建着色器程序时遇到了一个非常困难的问题。当我调用glCreateShader或glCreateProgram时,每个都会返回0。 我已经介绍了有关故障排除的所有基础知识: > 我检查以确保我有一个ogl上下文(我做了,我通过用各种颜色清除帧缓冲区来测试它,这有效)。 我尝试glGetError但它什么也没有返回(GL_NO_ERROR) 我不是opengl或android专家