使用RestAssured发送带JSON请求体的GET请求报错排查求助
问题排查与解决
核心问题1:GET请求携带请求体不符合HTTP常规实现
HTTP规范虽未完全禁止GET请求携带请求体,但绝大多数服务端框架会忽略或拒绝处理GET请求的请求体,这是你收到服务器无法理解请求错误的主要原因。
你需要根据接口的实际要求,将请求方法替换为post()或put()这类支持请求体的HTTP方法,修改后的代码示例:
response = given() .urlEncodingEnabled(true) .body(Json) .contentType("application/json") .post(path); // 替换get为post或put
核心问题2:JSON字符串存在语法错误
你定义的JSON最后一个键值对末尾多了一个逗号,这会导致JSON解析失败。同时id: 001在Java中会被当作八进制数值,建议直接写十进制1避免歧义。修正后的JSON字符串:
String Json = "{\n" + " \"type\": \"estrix\",\n" + " \"role_name\": \"admin\",\n" + " \"id\": 1,\n" + " \"start_date\": \"2018-01-01\",\n" + " \"end_date\": \"2022-12-30\"\n" + "}";
内容的提问来源于stack exchange,提问作者Automation Engr
相关产品推荐
相关产品推荐

