如何在C#MVC中发送短信
我写了一些代码向员工发送短信 所有消息都保存在数据库中。我从DB中获取它们并在uri中传递信息,但当我得到响应时,它显示“不允许空文本,已拒绝” 即使数据在msgtext字符串变量中传递,但在执行uri代码后,响应为“不允许空文本,已拒绝”如何在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
@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();
}
}