短信应用程序不发送特殊字符asp.net mvc

问题描述 投票:0回答:2

我有一个从网上发送短信的ASP.NET MVC应用程序,问题是它不会发送一些特殊字符,比如〜!@#$&,当我发送类似&&&&之类的东西时,它不发送短信,如果我发送像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
2个回答
0
投票

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


0
投票

非常感谢光,我设法找到使用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();
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.