2 回答

TA貢獻1776條經驗 獲得超12個贊
嘗試修改,為API創建一個帶有數據屬性的實體類:
public class Data
{
public string email {get;set;}
public string subject {get;set;}
public string message {get;set;}
}
現在更改 API 服務如下:
[HttpPost]
public async Task<IActionResult> SendEmailAsync([FromBody] Data d)
{
await _emailService.SendEmail(d.email, d.subject, d.message);
return Ok();
}
現在您的郵遞員服務將按預期工作,從 Request Body
編輯 1
以下是其他選項,以防您想使用查詢字符串發送數據:
public async Task<string> SendEmailAsync(string email, string subject, string message) 或者
public async Task<string> SendEmailAsync([FromUri]Data d)
在上述兩種情況下,以下查詢都有效:
https://localhost:5001/api/send-email?subject=Get Medicine&[email protected]
盡管第一個具有優先級,請注意,我沒有在參數中傳遞消息,因為它在原始查詢和順序或參數中為 null 可以是任何內容。
正如討論中所建議的,如果Data沒有明確限定,那么它期望 Json 數據作為 Http Request Body

TA貢獻1811條經驗 獲得超6個贊
我認為 POST 請求的綁定方式與您期望默認綁定 GET 請求的方式不同。您可以為此做兩件事:
1)創建一個請求對象而不是3個字符串
public class SendEmailRequest
{
public string Email {get; set;}
...
}
2)按照評論中的建議執行 FromBody
我建議前者,我認為這是一種更簡潔的方式,我在我的應用程序中使用了這種方法。
- 2 回答
- 0 關注
- 169 瀏覽
添加回答
舉報