我是ASP.NET Web API的新手,我正在尝试编写一种将发送电子邮件的API方法。
这是我的sendEmail控制器:
[Route("sendemail")]
[HttpPost]
public bool SendEmail(EmailObj email)
{
var To = email.sendTo;
var Subject = email.subject;
var Message = email.message;
...
}
但是,每当我使用邮递员对其进行测试时,发送的对象都是null。 这就是我的json对象在邮递员中的构建方式:
{
"subject": "Test Message",
"message": "this is a test",
"sendTo": "sam@test.com"
}
我确保该类型在邮递员上被标记为JSON,并尝试以其他方式设置其格式,但似乎不起作用。该API接收电子邮件对象,但始终为null。
这里是screenshot of my postman,以防万一我遗漏了某些东西。
感谢您的帮助。
编辑:已经尝试在json中添加“ [FromBody]”并添加“ email:{}”,但是它不起作用。
答案 0 :(得分:0)
您可以做两件事:
$ keytool -keystore /Users/xxx/QS/platforms/android/appreleasedemo.keystore -list
Keystore type: jks
Keystore provider: SUN
Your keystore contains 1 entry
appreleasedemoalias, Oct 1, 2018, PrivateKeyEntry,
Certificate fingerprint (SHA1): FC:63:EC:88:0A:A2:ED:B4:7A:34:C1:76:F9:98:F5:E0:8D:85:7A:4F
或将json对象的主体更改为:
public bool SendEmail([FromBody]EmailObj email)
答案 1 :(得分:0)
我发现了什么错误,我将我的电子邮件对象声明为“可序列化”,这阻止了json对象获得任何值。
答案 2 :(得分:0)
You can compare your controller with below code and you can click this link and see the output.
[RoutePrefix("api/test")]
public class TestController : ApiController
{
[Route("sendemail")]
[HttpPost]
public bool SendEmail(EmailObj email)
{
if(email !=null)
{
return true;
}
return false;
}
}
public class EmailObj
{
public string sendTo { get; set; }
public string subject { get; set; }
public string message { get; set; }
}
This is my postman image that how I have called the post api.