Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#MVC中发送短信_C# - Fatal编程技术网

如何在C#MVC中发送短信

如何在C#MVC中发送短信,c#,C#,我写了一些代码向员工发送短信 所有消息都保存在数据库中。我从DB中获取它们并在uri中传递信息,但当我得到响应时,它显示“不允许空文本,已拒绝” 即使数据在msgtext字符串变量中传递,但在执行uri代码后,响应为“不允许空文本,已拒绝” @Niyaz:你应该在msgText周围放置一个if条件 //Do not send sms, if sms content is empty. if (mobile != null && mobile != string.Empty

我写了一些代码向员工发送短信

所有消息都保存在数据库中。我从DB中获取它们并在uri中传递信息,但当我得到响应时,它显示“不允许空文本,已拒绝”

即使数据在msgtext字符串变量中传递,但在执行uri代码后,响应为“不允许空文本,已拒绝”


@Niyaz:你应该在msgText周围放置一个if条件

//Do not send sms, if sms content is empty.


  if (mobile != null && mobile != string.Empty)
    {
        msgText = SMSContentSubject.Content.Replace("EMPID", EMPID).Replace("EMPNAME", EMPNAME).ToString();

        If(!string.IsNullorEmpty(msgText))
        {
      String myEncodedString;
         // Encode the string.
         myEncodedString = HttpUtility.HtmlEncode(msgText );

            Uri requestUri = new Uri("http://www.myvaluefirst.com/smpp/sendsms" + "?username=medimanagecri&password=medimib2&to=" + mobile + "&udh=0&from=MEDIMA&text=" + myEncodedString + "&dlr-url=");
            WebRequest webRequest = WebRequest.Create(requestUri);
            WebResponse response = webRequest.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(responseStream);
            string text = streamReader.ReadToEnd();
        }
    }

上面写着“不允许空文本”,您正在将
msgText
设置为
string。空的
请提供更多详细信息:您使用哪个短信网关?这也有一个缺陷,显然你是发送明文密码。我很抱歉你有麻烦,但这个问题是一个穷人适合这样做。我建议您阅读SMS网关提供的文档,并可能使用一些基本的调试技能。您确定mobile不为null吗,也许你想扩展if(mobile…)以覆盖整个“发送代码”,而不仅仅是msgtext的设置,而且在msgtext中,数据是在if条件下出现的,在这之后,只有我们将其传递给uri。我尝试了这个方法,但字符串文本“不允许空文本,拒绝”的结果仍然相同短信供应商是否接受GET或POST或PUT当前您正在进行GET。。。检查供应商的SMS内容大小规格。你需要修剪吗?不需要修剪它,因为如果内容太大,它将发送2条短信。我也尝试了这一点,但仍然是相同的结果先做一个概念验证:尝试硬编码//虚拟数据msgText=“我想发送短信”;尝试使用以上字符串值发送短信。邮件应为URL编码。请点击这里的链接。供应商文档:您可以通过在此处编码文本来测试示例代码:
//Do not send sms, if sms content is empty.


  if (mobile != null && mobile != string.Empty)
    {
        msgText = SMSContentSubject.Content.Replace("EMPID", EMPID).Replace("EMPNAME", EMPNAME).ToString();

        If(!string.IsNullorEmpty(msgText))
        {
      String myEncodedString;
         // Encode the string.
         myEncodedString = HttpUtility.HtmlEncode(msgText );

            Uri requestUri = new Uri("http://www.myvaluefirst.com/smpp/sendsms" + "?username=medimanagecri&password=medimib2&to=" + mobile + "&udh=0&from=MEDIMA&text=" + myEncodedString + "&dlr-url=");
            WebRequest webRequest = WebRequest.Create(requestUri);
            WebResponse response = webRequest.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(responseStream);
            string text = streamReader.ReadToEnd();
        }
    }