[英]How to solve ERROR “Delegation denied for <user email>” when i call Gmail API it returns 403 error code in JAVA
[英]How to solve error code “405” on API call with testing?
在IntelliJ的运行模式下测试API调用时,出现错误代码“ 405”。 但是,当我测试API cal时; 在Postman中使用相同的参数即可使用。
我正在编写一个自动存储塔,用户必须先登录才能使用它。 登录表单有效,当我尝试使用Postman登录时,它也会成功登录。 但是,当我在IntelliJ上运行我的代码时,它给我错误代码“ 405”,表示“方法不允许”。
我的userController类代码有效:
@PostMapping(value = "/login", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String login(@RequestBody MultiValueMap<String, String> body){
String email = body.getFirst("email");
String username = body.getFirst("username");
String password = body.getFirst("password");
return userService.loginUser(email, username, password);
}
我的功能测试代码(也可以工作,因为我的API测试中的其他GET方法也可以工作):
公共类FunctionalTest {
@BeforeClass
public static void setup() {
String port = System.getProperty("server.port");
if (port == null) {
RestAssured.port = Integer.valueOf(8080);
}
else{
RestAssured.port = Integer.valueOf(port);
}
String basePath = System.getProperty("server.base");
if(basePath==null){
basePath = "/";
}
RestAssured.basePath = basePath;
String baseHost = System.getProperty("server.host");
if(baseHost==null){
baseHost = "http://localhost";
}
RestAssured.baseURI = baseHost;
}
}
最后是我用于测试POST方法以登录的代码:
//User control
@Test
public void checkLogin(){
given()
.param("email", "123")
.param("username", "123")
.param("password", "123")
.when()
.get("/login")
.then()
.statusCode(200);
}
希望有人能帮助我解决这个问题。
提前致谢!
405
表示不允许使用方法。 发生这种情况是因为您要公开POST
操作( @PostMapping(value = "/login", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
但尝试通过GET
进行消耗: .when().get("/login")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.