一、问题背景

  继上次七牛云SDK的问题之后(参考:http://www.cnblogs.com/OMango/p/8447480.html),在发送短信的功能上又出现了问题,我们短信服务使用的是阿里大于的服务,之前的平台是.NET Framework的平台,使用阿里官方的SDK并没有出现什么幺蛾子,但是转到.NET Core下后,找遍了阿里官方也并没有找到.NET Core的SDK,不得不说,在这方面.NET Core还有很长的路要走啊,虽然没有SDK,但是功能还是要完成啊,那怎么办呢?只能自己从.NetFrameWork的SDK里进行提取

二、修改说明

  emmmm,好好看了一遍SDK以及官方文档后,发现topsdk里面还包含了其他的一些功能,但是我只需要短信服务啊,SO,既然准备改造那就把其他的相关功能都去掉了,只留下了短信相关功能,废话不多说先上链接https://github.com/Hello-Mango/MTopSdkSMS.Core,这是我已经修改后的代码,也经过测试可以发送短信到手机,dll也已经上传到NUGET(搜索MTopSdkSMS)

  修改方案主要是.NET FrmeWork下的HttpRequest类在.NetCore中不是默认带的,所以需要安装Microsoft.AspNetCore.Http,该SDK里还使用了反射的方法,所以还需要安装System.Reflection.Emit.Lightweight,最后一点就是将

wReq.ServicePoint.Expect100Continue = false;

修改为

ServicePointManager.Expect100Continue = false;

  如果不修改的话,会报平台不支持的错误,如果大家想自己尝试的话,可以下载官方的SDK源码进行.NET Core的改造,或者可以直接Nuget搜索MTopSdkSMS

三、具体使用

  具体的代码使用方法完全可以参照官方的文档使用,我这边就给出一个简单的封装代码

 public SMS(string phoneNo, String template, String _AppKey, String _AppSecret, String _Extend, String _SmsFreeSignName, String _SmsTemplateCode)
{
_phoneNo = phoneNo;
_template = template;
Appsecret = _AppSecret;
Appkey = _AppKey;
Extend = _Extend;
SmsFreeSignName = _SmsFreeSignName;
SmsTemplateCode = _SmsTemplateCode;
} /// <summary>
///短信身份验证
/// </summary>
/// <param name="phoneNo">手机号</param>
/// <param name="dicParam">短信模板变量,对应模板中自定义字段</param>
/// <returns></returns>
public String Send()
{
//短息通知API请求参数
ITopClient client = new DefaultTopClient(url, Appkey, Appsecret);
AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
req.Extend = Extend; //公共回传参数,在“消息返回”中会透传回该参数;
req.SmsType = "normal"; //短信类型,传入值请填写normal
req.SmsFreeSignName = SmsFreeSignName; //短信签名
req.SmsParam = _template; //短信模板变量
req.RecNum = _phoneNo; //短信接收号码
req.SmsTemplateCode = SmsTemplateCode; //短信模板ID
AlibabaAliqinFcSmsNumSendResponse response = client.Execute<AlibabaAliqinFcSmsNumSendResponse>(req);
if (response.Result == null)
{
return GetErrorMsg(response.SubErrCode);
}
else
{
return response.Result.Success.ToString();
}
}

四、总结

  .NET Core目前来说第三方库上支持相对于其他来说还是比较少,例如oracle目前还都没有关于.NET Core的驱动库,一些简单的碰到只能自己想办法去转换或者其他途径实现,但是后续相信.NET Core会越来越好

  PS:由于这个只是我个人的修改作品,未经过大量的验证,如果大家发现有什么问题的话,也请联系我。

作者: Mango

出处: http://www.cnblogs.com/OMango/

关于自己:专注.Net桌面开发以及Web后台开发,开始接触微服务、docker等互联网相关

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,如有问题, 可邮件(hongjb@yizit.com)咨询.

.NET Core阿里大于短信发送SDK修改以及使用的更多相关文章

  1. ASP版_阿里大于短信API Demo

    阿里大于申请地址:http://www.alidayu.com 阿里大于短信发送Demo: ******index.asp************* <%@LANGUAGE="VBSC ...

  2. 功能:使用QQ号登陆,并加上微信和短信提醒,是否增量备份可选,阿里大鱼短信发送开发与测试,聚合数据(用JSON发短信,比较清楚)

    微博就可以,所以其它软件也可以http://desktop.weibo.com/ http://blog.csdn.net/jueblog/article/details/14497181http:/ ...

  3. pyhthon 利用爬虫结合阿里大于短信接口实现短信发送天气预报

    # -*- coding: utf-8 -*- ''''' SDK for alidayu requires: python3.x, requests @author: raptor.zh@gmail ...

  4. 阿里云短信发送服务SDK-Python3

    本文提供阿里云的短信发送服务SDK,使用Python3实现. # -*- coding: utf-8 -*- # pip install requests import requests import ...

  5. Abp 添加阿里云短信发送

    ABP中有短信发送接口ISmsSender public interface ISmsSender { Task<string> SendAsync(string number, stri ...

  6. 2018阿里云短信发送DEMO接入简单实例

    以下更新2018-04-2309:57:54 后续不再更新, 基本类: app/SignatureHelper.php <?php namespace aliyun_mns; /** * 签名助 ...

  7. spring boot集成阿里云短信发送接收短信回复功能

    1.集成阿里云通信发送短信: 在pom.xml文件里添加依赖 <!--阿里短信服务--> <dependency> <groupId>com.aliyun</ ...

  8. .net core 使用阿里云短信发送SMS

    阿里云官方的skd(aliyun-net-sdk-core,aliyun-net-sdk-dysmsapi)在dnc中发送短信会出错,nuget上的包貌似也一样不管用.直接改下sdk当然也可以,但就发 ...

  9. asp.net mvc 接入阿里大于 短信验证码发送

    项目前端页面实例 第1步:登录阿里大于控制台 https://www.alidayu.com/center/user/account?spm=0.0.0.0.P1K1jG 第2步:创建应用 第3步:配 ...

随机推荐

  1. IOS @proporty 关键字(一)retain strong

    @interface User : NSObject @property (nonatomic,retain) NSString* tRetain; @property (nonatomic,assi ...

  2. 【good】在CentOS 6.x上安装GlusterFS

    转发:http://quenywell.com/install-glusterfs-on-centos-6-x/ 本文主要介绍如何在CentOS 6.x上快速安装GlusterFS.GlusterFS ...

  3. linux_磁盘体系

    未曾习艺先学礼,未曾学武先习德 当今磁盘都是温室磁盘,原理是一样的,高速转动的的盘,磁头做径向运动 当今磁盘的发展趋势: 体积更小.速度更快.容量更大.使用更安全 速度更快: 主轴转速: 10000/ ...

  4. js_1_变量类型

    js中有哪些变量类型? 数字(包括int和float),字符串,数组(字典,js没有字典类型,把字典看成一个对象) 如何把字符转成数字呢? obj.parseInt()         //  转化成 ...

  5. python_15_内置函数

    有哪些内置函数? -- all()                              - 可迭代对象,全为真返回真 -- any()                            - ...

  6. awk打印第n个参数到最后一个技巧/将n行组成一列

    打印第n参数到最后一个参数 文本的NF不等,即字段长度不固定,想截取从$3到$NF 第一反应是使用循环 [root@localhost ~]# echo "1 2 3 4 5" | ...

  7. 在IAR下移植CC2650 contiki工程

    与Instant Contiki相比,在Windows的IAR下开发可以在线仿真,下载也更方便,因此我想把BLEach的工程移植到IAR下.弄了好几天总算编译并且下载成功了,参考了[这篇TI的wiki ...

  8. selenium模拟浏览器对搜狗微信文章进行爬取

    在上一篇博客中使用redis所维护的代理池抓取微信文章,开始运行良好,之后运行时总是会报501错误,我用浏览器打开网页又能正常打开,调试了好多次都还是会出错,既然这种方法出错,那就用selenium模 ...

  9. Apache优化配置:修改最大并发连接数

    此文摘自: http://www.365mini.com/page/apache-concurrency-configuration.htm Apache查看连接数和限制当前的连接数 : http:/ ...

  10. BZOJ 3809: Gty的二逼妹子序列 & 3236: [Ahoi2013]作业 [莫队]

    题意: 询问区间权值在$[a,b]$范围内种类数和个数 莫队 权值分块维护种类数和个数$O(1)-O(\sqrt{N})$ #include <iostream> #include < ...