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

Spring boot post方法不工作

仇正平
2023-03-14

这是用于测试的curl命令:

curl-h“content-type:application/json”-x post-d“[{id:2,title:”My first note title Update“,note:”My first note Update“,CreateTime:1461737231000,LastUpdateTime:1461737231000,LastUpdateTime:1461737231000}]”-u“a@a.a”:a localhost:8080/update

@RestController
public class GotPrintController {

    @Autowired
    private NotesRepository notesRepository;

    @Autowired
    private UserRepository userRepository;

    @RequestMapping("/createnotes")
    @Transactional
    public Notes create() {
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        System.out.println("auth.getName::"+auth.getName());
        Notes notes = new Notes();
        notes.setCreateTime(new Date());
        notes.setLastUpdateTime(new Date());
        notes.setNote("My First Note");
        notes.setTitle("My first note title");
        notesRepository.save(notes);
        return notes;
    }


    @RequestMapping("/readnotes")
    @Transactional
    public List<Notes> read(){
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        System.out.println("auth.getName::"+auth.getName());
        User users = userRepository.findByEmailId(auth.getName());
        List<Notes> notes = (List<Notes>) users.getNotes();
        return notes;
    }

    @RequestMapping(value="/delete/{id}/", method=RequestMethod.POST)
    @Transactional
    public String delete(@PathVariable Integer id){
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        System.out.println("auth.getName::"+auth.getName());
        User users = userRepository.findByEmailId(auth.getName());
        List<Notes> notes = (List<Notes>) users.getNotes();
        for (Notes notes2 : notes) {
            if(notes2.getId() == id){
                notesRepository.delete(id);
                return "success";
            }
        }
        return "failure";

    }

    @RequestMapping(value="/update", method=RequestMethod.POST,headers = "Content-type: application/*")
    @Transactional
    public ResponseEntity<?> update(@RequestBody Notes note){
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        System.out.println("auth.getName::"+auth.getName());
        User users = userRepository.findByEmailId(auth.getName());
        List<Notes> notes = (List<Notes>) users.getNotes();
        for (Notes notes2 : notes) {
            if(note.getId() == notes2.getId()){
                // note belongs to user update it
                notesRepository.save(note);
                return new ResponseEntity<>(note, HttpStatus.OK);
            }
        }
        return new ResponseEntity<>("", HttpStatus.NO_CONTENT); 
    }

}

这是当尝试从curl hot POST method时的日志

2016-04-27 13:15:36.927信息14755---[main]com.gotprint.GotprintApplication:在18.481秒内启动了GotprintApplication(JVM运行23.399)2016-04-27 13:15:47.298信息14755---[nio-8080-exec-1]O.A.C.C.C.[Tomcat].[localhost].[/]:初始化Spring FrameworkServlet“Dispatcher Servlet”2016-04-27 13:15:47.298信息14755---[nio-8080-exec-1]O.s.web.servlet.dispatcherServlet:

下面是我的实体类:

@Entity
public class Notes implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "id")  
    private int id;

    @Column(name = "title")  
    private String title;

    @Column(name = "note")
    private String note; 

    @Column(name = "createTime")  
    private Date createTime;

    @Column(name = "lastUpdateTime")  
    private Date lastUpdateTime;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

共有1个答案

拓拔元徽
2023-03-14

只需移除

headers = "Content-type: application/*"

如果要接受特定的内容类型,请使用RequestMapping批注的consumes属性。

或要使用headers属性的语法为:

headers = "Content-type=application/*"
 类似资料:
  • xml代码: java代码: 错误: 进程:com.example.rober.registrazione,PID: 21261java.lang.IllegalStateExcture:无法执行android的方法:在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.on单击(AppCompatViewInf

  • 以下是我的代码块: 控制台无错误;但内容不仅仅是附加的。

  • 我试图用Spring Boot和ReactJs构建一个CRUD应用程序,但我在“Edit”方法中遇到了一些错误。当我试图编辑一个用户时,我在网络选项卡中得到一个404错误,我设法在框中写入,当我想保存而不是编辑我选择的用户时,一个新的添加。“add”方法工作正常,但我认为这是方法之间的重叠。我将把代码留在这里:

  • 我想,我正在使用来。我写了下面的代码来回答按下的呼叫按钮,大多数情况下我能够结束所有设备上的呼叫,但当我试图接收一个呼叫时,它不工作。 此(呼叫应答)代码在我测试过的一些设备上运行良好(Motorola**e3 6.0Android安全补丁2016年6月1日、honor 4.4.4、YU 4.4.4等)(小米note 4 6.0.1,lyf 6.O.1Android安全补丁2017年3月1日)上运

  • 我正在使用AudioPlayer包来开发音频/媒体播放器。要从资产文件夹加载音乐,我使用AudioCache类,并使用其他方法(暂停、停止和持续时间),我使用AudioPlayer。 当我单击按钮播放音乐时,它可以完美地工作,但是当我再次单击该按钮以暂停音乐时,它根本不起作用(音乐继续播放),并且单击时两个图标都没有更改 我做错了什么? 这是代码

  • 我在以下问题上显示复利和贷款时遇到问题。我必须有一个抽象的超类和两个方法,一个是集合,一个是获取存储原则量,一个是抽象集合,一个是获取存储速率和年份。当我运行这个项目时,我不知道我做错了什么,无论我做什么,大院和贷款都保持在0.0。请帮忙!!谢谢哦,我还必须创建对象的引用,我知道怎么做。注:我最初有公共双年费和公共双年费,但由于不起作用,我创建了第2年费率2等。