为什么 WebHook 的 WebApi 配置不能在 POST 上运行?
Why doesn't WebApi config for WebHook work on POST?
我想从 WebHook 获取来自 IFTTT 的发布数据。它在使用 GET 时有效,但在使用 POST 时无效。
[HttpPost]
[Route("InsertData")]
public IActionResult InsertData([FromBody] string FromAddress)
{
try
{
//var fromAddress = Request.Form["FromAddress"].ToString();
_webHookDb.UserData.Add(new UserData()
{
FromAddress = FromAddress,
DateTime = DateTime.Now
});
_webHookDb.SaveChanges();
return new JsonResult(FromAddress);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
创建一个模型来保存数据
public class Model {
public string FromAddress { get; set; }
}
在动作端点中使用它。
[HttpPost]
[Route("InsertData")]
public async Task<IActionResult> InsertData([FromBody] Model model) {
try {
if(ModelState.IsValid) {
_webHookDb.UserData.Add(new UserData() {
FromAddress = model.FromAddress,
DateTime = DateTime.Now
});
await _webHookDb.SaveChangesAsync();
return new Ok(model);
}
return BadRequest(ModelState); //Bad data?
} catch (Exception ex) {
return StatusCode(500, ex.Message); //Something wrong with my code?
}
}
查看从网络挂钩中的响应返回的消息,以获取有关请求失败原因的详细信息。
如果 HTTP 状态代码为 500,则说明数据的保存方式有问题。
如果 HTTP 状态代码为 400,则说明数据的发送方式有问题。
我想从 WebHook 获取来自 IFTTT 的发布数据。它在使用 GET 时有效,但在使用 POST 时无效。
[HttpPost]
[Route("InsertData")]
public IActionResult InsertData([FromBody] string FromAddress)
{
try
{
//var fromAddress = Request.Form["FromAddress"].ToString();
_webHookDb.UserData.Add(new UserData()
{
FromAddress = FromAddress,
DateTime = DateTime.Now
});
_webHookDb.SaveChanges();
return new JsonResult(FromAddress);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
创建一个模型来保存数据
public class Model {
public string FromAddress { get; set; }
}
在动作端点中使用它。
[HttpPost]
[Route("InsertData")]
public async Task<IActionResult> InsertData([FromBody] Model model) {
try {
if(ModelState.IsValid) {
_webHookDb.UserData.Add(new UserData() {
FromAddress = model.FromAddress,
DateTime = DateTime.Now
});
await _webHookDb.SaveChangesAsync();
return new Ok(model);
}
return BadRequest(ModelState); //Bad data?
} catch (Exception ex) {
return StatusCode(500, ex.Message); //Something wrong with my code?
}
}
查看从网络挂钩中的响应返回的消息,以获取有关请求失败原因的详细信息。
如果 HTTP 状态代码为 500,则说明数据的保存方式有问题。
如果 HTTP 状态代码为 400,则说明数据的发送方式有问题。