asp.net mvc 5の文字を:/.
のようにAPIコントローラのエンドポイントに送信しようとしていますが、特定の文字を含むものを試すとすぐに失敗します。たとえば、私はmessage:hi
を送ることができない、それを働かせるためにそれをmessage_hi
に変えなければならない。MVC 5:URLパラメータに特定の値を送信する
私は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/[email protected]/Hello There/Hi,\nThis is a url you can use for stuff: https://thisisit.com. \n Thanks bye.
私は」私はそれを送る前に体にHttpUtility.UrlEncode
を試しましたが、それは何もしません。誰もこの種の文字を含む文字列を送る方法を知っていますか?
は、それは良いでしょう、あなたのWeb APIアクションがパラメータとして取る
POSTを使用して、要求の本文でメッセージを送信します。 URLのパス部分にそのような特殊文字をエンコードしようとしないでください。あなたは失敗します:http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx –
@DarinDimitrovこんにちは、ありがとう!それを行う方法について簡単なコードスニペットを提供し、それを回答として投稿できますか? :)リンクのおかげで、それを読むことになります。 –