有没有办法使用Web API从ASP.NET网站发送短信?我知道Web服务,但不知道如何从我的应用程序中调用这些服务。
答案 0 :(得分:33)
Web服务是最好的方法。我在一个网站上使用Twilio,设置和工作非常容易。可伸缩性不是问题,您不仅要花费成本而不必花费开发人员时间来构建自己的解决方案。
Twilio:http://www.twilio.com/
适用于.NET的Twilio库:https://www.twilio.com/docs/csharp/install
在twilio-csharp项目中,以下是如何发送短信的示例(我从twilio-csharp中获取了这个。只是重新发布它以显示它是多么容易)
static void Main(string[] args)
{
TwilioRestClient client;
// ACCOUNT_SID and ACCOUNT_TOKEN are from your Twilio account
client = new TwilioRestClient(ACCOUNT_SID, ACCOUNT_TOKEN);
var result = client.SendMessage(CALLER_ID, "PHONE NUMBER TO SEND TO", "The answer is 42");
if (result.RestException != null) {
Debug.Writeline(result.RestException.Message);
}
}
答案 1 :(得分:11)
我觉得我有点迟到告诉你,你很幸运,但是对于那些后来发现这篇文章的人,我创建了一个视频,展示了如何使用你的Twilio帐户发送短信和asp.net:
i walk you through sending a text message using twilio and asp.net c#
如果您没有10分钟的时间观看视频,请输入以下代码:
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Twilio;
namespace TwilioSMSHowTo
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SendMessage_OnClick(object sender, EventArgs e)
{
string ACCOUNT_SID = ConfigurationManager.AppSettings["ACCOUNT_SID"];
string AUTH_TOKEN = ConfigurationManager.AppSettings["AUTH_TOKEN"];
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
client.SendMessage("(502) 276-8990", ToNumber.Text, Message.Text);
}
}
}
要使此代码正常工作,您需要获取Twilio API并需要使用您的帐户ID和身份验证令牌替换我的configurationmanager.appsettings内容。
快乐的编码!
答案 2 :(得分:7)
如果您更喜欢与其他短信服务提供商Way2Sms.com合作,而不是使用Twilio API,我认为以下代码可以帮助您:
public void sendsms(object sender, EventArgs e)
{
if (Page.IsValid)
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://ubaid.tk/sms/sms.aspx?uid=" + yourmobilenumber + "&pwd=" + yourpassword + "&msg=" + body.Text + "&phone=" + recipientNo.Text + "&provider=way2sms");
HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
string responseString = respStreamReader.ReadToEnd();
respStreamReader.Close();
myResp.Close();
}
}