【问题标题】:SMS application is not sending special characters asp.net mvcSMS应用程序不发送特殊字符asp.net mvc
【发布时间】:2018-09-04 00:23:50
【问题描述】:

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

野兔是我的代码:

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();
    }
}

希望有人可以提供帮助。

【问题讨论】:

    标签: asp.net asp.net-mvc sms sms-gateway


    【解决方案1】:

    由于您使用Get方法调用短信网络服务,非法字符会自动从您的短信中删除。发送前需要使用 HttpUtility.UrlEncode 对字符进行编码。

    【讨论】:

    • 感谢您的洞察力,您能告诉我在这种情况下怎么做吗?
    【解决方案2】:

    非常感谢您的光,我设法使用 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();
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多