【发布时间】:2017-05-31 01:59:28
【问题描述】:
我正在尝试将 asp.net mvc 5 中的 : / . 之类的字符发送到 API 控制器端点,但是一旦我尝试包含某些字符的内容,它就会失败。例如,我无法发送message:hi,我必须将其更改为message_hi 才能使其正常工作。
我正在尝试使用 Exchange 发送电子邮件,但正文(包含 URL 和其他信息)无法通过。
我的 API 控制器:
[Route("send/{adress}/{subject}/{body}")]
public void SendEmail(string adress, string subject, string body)
{
Office365MailSender ms = new Office365MailSender();
EmailDto email = new EmailDto(adress, subject, body);
ms.Send(email);
}
从我的应用程序调用上述端点:
public static async Task<string> SendMail(IPhoneCall phoneCall)
{
var email = new EmailEntity(phoneCall);
using (var client = new HttpClient())
{
var uri = new Uri("http://url/email/send/" + email.Recipient + "/" + email.Title + "/" + email.body);
var msg = await client.GetAsync(uri);
}
return "Email Sent";
}
uri 变量的值示例如下:
http://url/email/send/myemail@outlook.com/Hello There/Hi,\nThis is a url you can use for stuff: https://thisisit.com. \n Thanks bye.
我在发送之前尝试了HttpUtility.UrlEncode 在正文上,但这无济于事。有谁知道如何发送包含这些类型字符的字符串?
【问题讨论】:
-
最好使用 POST 并在请求正文中发送消息。不要尝试在 url 的路径部分对此类特殊字符进行编码。你会失败:hanselman.com/blog/…
-
@DarinDimitrov 嗨,谢谢!您能否提供有关如何执行此操作的简短代码 sn-p 并将其发布为答案? :) 感谢您的链接,将通读它。
标签: c# asp.net asp.net-mvc url exchangewebservices