博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为 Asp.net 网站新增发送手机短信功能
阅读量:4638 次
发布时间:2019-06-09

本文共 2186 字,大约阅读时间需要 7 分钟。

 本文旨在帮助那些为网站发送手机短信正在寻求解决方案还未最终找到解决方案的朋友提供参考。

    适合人群 须满足一下条件之一,如果以下3个条件您都不满足,为节约您宝贵的时间,请终止阅读本篇文章。

    条件如下:

         1.一条短信内容进行短信群发的目标手机数量不能太大,否则出现严重的短信延时。

         2.不想买短信猫之类的设备,同时又觉得部分国有电信单位提供的短信接口不好用,或者认为其服务不够好。

         3.担心网络上短信sp供应商信息不真实,毕竟大部分短信供应商不能通过当面交易。

   看到这里说明您对我的解决方案是感兴趣的,我这样解决的:

        找过几家国有企业短信sp供应商,效果比我想象的要差很多,于是直接在网络上找提供类似服务的短信供应商。发现有很多这样的民营sp短信供应商的服务都是通过网银或者支付宝进行购买。这又让我担心是骗钱的。说实在的挺苦恼的,甚至有朋友建议直接买个几百元的低端多普达,在windows mobile 内写一个自动发送短信的功能充当短信猫。后来苦苦寻觅中我发现了 (申明:无任何广告嫌疑!)可以购买一百元1000条手机短信而且注册后可以先试用10条短信。将10条试用完后,我用信用卡通过其网站购买了100元短信。心想如果被骗了,这样损失也不会很大。详细步骤如下:

       1.在其平台上注册一个属于自己的用户名。

       2.在我们的网站或者类库中加入这段方法 (注:此方法不是官方提供的,是我看完官方的API后用C#编写)

1
public
static
bool
SendMobileMsg(
string
msgContent, List
<
string
>
destListPhones)
2
{
3
try
4
{
5
bool
result
=
false
;
6
string
strPhones
=
string
.Join(
"
;
"
, destListPhones.ToArray());
7
strPhones
+=
"
;
"
;
8
var encoding
=
System.Text.Encoding.GetEncoding(
"
GB2312
"
);
9
10
string
postData
=
string
.Format(
"
uid=用户名&pwd=密码&mobile={0};&msg={1}&dtime=
"
, strPhones, msgContent);
11
12
byte
[] data
=
encoding.GetBytes(postData);
13
14
//
定义 WebRequest
15
 
HttpWebRequest myRequest
=
16
(HttpWebRequest)WebRequest.Create(
"
http://www.smsadmin.cn/smsmarketing/wwwroot/api/post_send/
"
);
17
18
myRequest.Method
=
"
POST
"
;
19
myRequest.ContentType
=
"
application/x-www-form-urlencoded
"
;
20
myRequest.ContentLength
=
data.Length;
21
22
Stream newStream
=
myRequest.GetRequestStream();
23
24
//
发送数据
25
 
newStream.Write(data,
0
, data.Length);
26
newStream.Close();
27
28
//
得到 Response
29
HttpWebResponse myResponse
=
(HttpWebResponse)myRequest.GetResponse();
30
StreamReader reader
=
new
StreamReader(myResponse.GetResponseStream(), Encoding.Default);
31
string
content
=
reader.ReadToEnd();
32
33
if
(content.Substring(
0
,
1
)
==
"
0
"
)
34
result
=
true
;
35
else
36
{
37
if
(content.Substring(
0
,
1
)
==
"
2
"
)
//
余额不足
38
{
39
//
"手机短信余额不足";
40
//
TODO
41
}
42
else
43
{
44
//短信发送失败的
其他原因,请参看官方API
45
}
46
result
=
false
;
47
}
48
49
return
result;
50
}
51
catch
52
{
53
return
false
;
54
}
55
56
}

很“干净”的调用,没有WebService也没有COM。

唯一要注意的就是编码用 GB2312 否则您收到短信的中文部分都是乱码,另外第10行的用户名和密码被硬编码了,应写在配置文件内。

最后,希望本篇能够帮助到您!

转载于:https://www.cnblogs.com/goodsunny/p/3176601.html

你可能感兴趣的文章
玩法详细说明文档
查看>>
Archlinux GNOME 3 操作习惯的变更
查看>>
visual studio 2005 常用按键
查看>>
2019 Multi-University Training Contest 1 - 1012 - NTT
查看>>
谭浩强C程序设计(第四版)例题中的代码优化
查看>>
浏览器调试淘宝首页看到有趣的招聘信息
查看>>
ASP.NET Identity “角色-权限”管理 4
查看>>
[转][译]ASP.NET MVC 4 移动特性
查看>>
SOC CPU
查看>>
get_result --perl
查看>>
163镜像地址
查看>>
ehcache memcache redis 三大缓存男高音
查看>>
eclipse 快捷键Open Implementation 直接退出
查看>>
minix中管道文件和设备文件的读写
查看>>
JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
查看>>
context 插图
查看>>
文件管理器中不支持的wma歌曲也显示可以播放的音乐图标
查看>>
Java基础学习-流程控制语句
查看>>
Shell中read的常用方式
查看>>
01javascript数据类型
查看>>