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

Springboot put方法不工作(控制台显示get调用)

孔君浩
2023-03-14

我想在字符串ArrayList中添加一个名称,但是当我调用put方法时,console.log显示了一个get方法。

当我调用urlhttp://localhost:8081/strings/add/test

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Oct 22 10:49:01 CEST 2021
There was an unexpected error (type=Method Not Allowed, status=405).
Request method 'GET' not supported

但它应该是put方法,而不是get方法,这有什么错?

import java.util.ArrayList;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class BasicController {

    private Logger logger = LoggerFactory.getLogger(BasicController.class);
    ArrayList<String> basicList = new ArrayList<String>();


    @GetMapping("/strings/get")
    @ResponseBody
    public String getAllStrings() {
        return basicList.toString();
    }


    @PutMapping("/strings/add/{newString}")
    @ResponseBody
    public String addNewString(@PathVariable String newString) {
        logger.debug(newString);
        basicList.add(newString);
        return newString + " added";
    }
    

}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @RequestMapping("/")
    public String hello() {
        return "Hello World!";
    }

}

共有1个答案

司空海荣
2023-03-14

问题是您在浏览器中运行调用,默认情况下这将触发get请求而不是put请求,请查看本文档以了解Http方法Http方法解释

正如你在一篇评论中指出的那样,你需要邮递员或其他类似的工具来使它正常工作。

 类似资料:
  • 在freemarker上多次尝试工作后,我切换到thymeleaf,也面临同样的问题。当返回html文件时,它只是一个字符串值,而不是模板文件夹中的html文件。 当我在他们的控制台上观看youtube thymeleaf视频时,我不知道为什么它甚至不能在控制台中启动。 这是main/resources/templates中的html文件 POM. xml

  • 当我搜索这个时,我找不到任何信息(可能我搜索了错误的关键字),但我需要一种方法,我可以让调试器在运行时输出我自己的字串,有点像System.out.print语句,但改为控制台窗口。 也许我只是个笨蛋,但我也想在有人告诉我这个问题之前问一下:在您完成程序并创建jar之后,system.out.print、println和printf语句是否会在运行时打印到命令提示符。我的程序使用JFrame和se

  • 我是拉威尔的新手,目前在资源控制器CRUD操作部门工作。我已经完成了显示功能,我的前端将从用户那里获取id,我需要使用id显示详细信息。为此,我使用了资源控制器显示功能。问题是,如何返回id?我尝试了以下格式 http://localhost/sbadmin/public/invoice/invoice/show?12http://localhost/sbadmin/public/invoice/

  • 我正在为我的android乞丐项目创建一个1对1扑克芯片计数器应用程序。当我按下任何调用displayBetPlayer1或displayBetPlayer2的按钮(+、-、Bet/Rise)时,我会收到一个运行时错误,所以我知道问题出在这些方法上。我还看到导入语句有一些不对劲的地方,但我对此太陌生,不明白是什么。有人知道问题出在哪里吗?(我将在注释中发布activity_main.xml,因为它

  • 本文向大家介绍python实现在控制台输入密码不显示的方法,包括了python实现在控制台输入密码不显示的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现在控制台输入密码不显示的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 我在SpringBoot api上工作,并使用具有以下属性设置的H2数据库。 当我想使用浏览器通过'http://localhost:8082/h2-console'查看H2数据库控制台时,浏览器中打开了一个带有连接和测试连接按钮的屏幕。当我单击Test Connection时,它返回成功,但当单击Connect按钮时,出现错误,即localhost拒绝连接。