如何从URL调用HTTP PUT
本文关键字:HTTP PUT 调用 URL | 更新日期: 2023-09-27 18:06:54
场景:-我有一个表单,一旦用户提交了这个表单,就会向用户发送一封邮件。像往常一样,邮件正文中会显示一个激活链接。
如果用户点击链接,他会被重定向到页面,现在访问url时,我想更新我的DB表中的字段:-
- isEmailVerified到true
- 验证日期
我正在使用WebAPI和HTTPPUT操作来更新数据库
ControllerName是注册,我不希望用户点击任何额外的按钮来更新,我希望如果用户访问url,HTTPPut(或更新(操作应该被调用,并且一旦用户点击,链接将无效。
我假设这个场景中的动作流是这样的:
- 用户在网页上填写表格
- 用户将表单提交到您的web api后端
- 后端保存从表单提交的数据
- 后端发送一封电子邮件,其中包含指向您的应用程序的链接
- 用户阅读电子邮件并点击链接
您希望步骤5中的操作在后端触发一些其他操作,即更新数据库中的一些数据,这些数据已经实现并在api中作为http PUT
方法公开。
问题是,单击浏览器中打开的电子邮件中的链接是因为无法指定http
方法。在浏览器中导航到URL是一个GET
请求,这就是您正在做的事情。所以你的PUT
动作永远不会被击中。
要解决此问题,您可以将操作从PUT
更改为GET
。
更改此项:
[HttpPut]
[Route("verify/{hash}")
public void VerifyEmail(string hash){
// your implementation logic
}
到此:
[HttpGet]
[Route("verify/{hash}")
public void VerifyEmail(string hash){
// your implementation logic
}