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

放心请求身体参数"value_error.missing"的问题

诸嘉澍
2023-03-14

我试图在rest-assured请求中传递请求体参数,但它返回给我的是非常令人沮丧的,我尝试了不同的方法,我尝试了类似字符串的JSON格式,但不起作用也总是相同的错误。错误消息值\u错误。缺少所有身体参数。

   value_error.missing
{
  "detail": [
    {
      "loc": [
        "body",
        "username"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    },
    {
      "loc": [
        "body",
        "password"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}

测试代码:

public Response login(String username, String password, String proxy) {
    //String user = "{\"username\":\"" + username + "\",\"password\":\"" + password + "\",\"proxy\":\"" + proxy + "\"}";
    Map<String, String> user = new HashMap<>();
    user.put("username", username);
    user.put("password", password);
    user.put("proxy", proxy);

    Response response = given()
            .headers(httpHeaderManager())
            .body(user)
            .spec(urlUser)
            .post("/auth/login")
            .then()
            .extract().response()
    
    
    return response;
    
}

共有1个答案

郭易安
2023-03-14
JSONObject jsonObj = new JSONObject();
jsonObj.put("username", username);
jsonObj.put("password", password);
jsonObj.put("proxy", proxy);

RequestBody body = RequestBody.create(jsonObj.toString(), MediaType.parse("application/json; charset=utf-8"));

Response response = given()
        .headers(httpHeaderManager())
        .body(body)
        .spec(urlUser)
        .post("/auth/login")
        .then()
        .extract().response()

这应该能行

 类似资料:
  • 对于包含JSON主体的post请求,我使用rest assured 我的post请求代码是:- 好心的帮助....

  • 今天调用了一个接口,接口要求传一个日期过去,当时没仔细看(因为文档也没写请求参数和相应参数),以为是传一个data,里面有条件查询的参数之类的,结果第一次报错。 Required request parameter 'date' for method parameter type String is not present(方法参数类型字符串所需的请求参数“日期”不存在) 后面第二次调用的时候注意

  • 我想通过Spring过滤器或方面记录超文本传输协议请求中的请求参数。我尝试了不同的方法,但请求参数为空或未调用方法。我使用的是POSTMAN,它是一个POST请求。 http://localhost:8080/available data 请求正文示例: {“keyUserAgent”:“CFNetwork/1209 Darwin/20.2.0”,“locale”:“en_US”,“eid”:“8

  • get请求参数放body里,post请求参数放url上这种是否合理? 有时候参数很少的情况我会让前端把参数放到post的url上,因为我感觉比如有两个参数,我后端要新建一个bean用@RequestBody接收完全没必要 我的想法是:如果get请求的参数可能比较复杂比如有bean的嵌套或者长度比较大超过了容器的限制(不考虑产品涉及是否合理),就可以放在body中,否则就放在url上;如果post请

  • 这一条给出: 这个: 我想做的是避免为所有测试编写完整的jsons,如果我可以跳过所有“”和{},将会更快。我的方法正确吗?

  • Magento的1.9RESTAPI需要授权头和oauth查询参数,但oauth()只允许OAuthSignature。标题或查询字符串 我追踪代码到com.jayway.restassured.internal.httpAuthConfig.process(...),但我不确定从这里做什么。 问:有没有过滤器或某种方法可以让我强制两者? TL;DR我首先提到这个:如何使用POSTMAN rest