SMS 应用程序未 asp.net mvc 发送特殊字符



我有一个从网络发送短信的 ASP.NET MVC 应用程序,问题是它不会发送一些特殊字符,例如 ~!@#$&,当我发送类似 &&&&& 的东西时,它不会发送短信,如果我发送类似 dan&dan 的东西,它将发送第一个段并删除剩余的字符和单词。

Hare是我的代码:

public ActionResult SendSms(SendBatch member)
{
StreamReader objReader;
WebClient client = new WebClient();
string mess = member.Message;
string cell = member.Cell;
string pass = "mypassword";
string user = "username";
string baseurl = "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" + "username=" + user + "&" + "password=" + pass + "&" + "message=" + mess + "&" + "msisdn=" + cell;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(baseurl);
try
{
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
objReader = new StreamReader(objStream);
objReader.Close();
}
catch (Exception ex)
{
ex.ToString();
}
}

希望有人能帮忙。

由于您使用 Get 方法调用 SMS Web 服务,因此会自动从 SMS 中删除非法字符。在发送之前,您需要使用 HttpUtility.UrlEncode 对字符进行编码。

非常感谢您的光,我设法使用HttpUtility.UrlEncode找到了一个解决方案:

public ActionResult SendSms(SendBatch member)
{
StreamReader objReader;
WebClient client = new WebClient();
string mess = member.Message;
string cell = member.Cell;
string pass = "mypassword";
string user = "username";
string message = HttpUtility.UrlEncode(mess, System.Text.Encoding.GetEncoding("ISO-8859-1"));
string baseurl = "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0?" + "username=" + user + "&" + "password=" + pass + "&" + "message=" + message + "&" + "msisdn=" + cell;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(baseurl);
try
{
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
objReader = new StreamReader(objStream);
objReader.Close();
}
catch (Exception ex)
{
ex.ToString();
}
}

最新更新