当前位置: 首页 > news >正文 上海网站开发工程师教育直播平台网站建设费用 news 2025/10/27 19:04:39 上海网站开发工程师,教育直播平台网站建设费用,专门做折扣的网站有哪些,商标购买网站最近项目中需要对接钉钉#xff0c;有些钉钉 API 的访问需要使用旧版服务端 SDK 才能搞定#xff0c;但是这个 SDK 使用的还是 .NET Framework 2.0 框架#xff0c;不能跨平台部署#xff0c;也不支持 async\await 的异步操作方法#xff0c;Nuget 上也有其它用户改造的 .…最近项目中需要对接钉钉有些钉钉 API 的访问需要使用旧版服务端 SDK 才能搞定但是这个 SDK 使用的还是 .NET Framework 2.0 框架不能跨平台部署也不支持 async\await 的异步操作方法Nuget 上也有其它用户改造的 .NET Core 版本但是都不支持异步方法于是就想自己改造一下经过若干小时的改造最终发现完全可行这篇文章就把改造的结果分享给大家。 主要包括两项改造调整框架为 .netstandard 2.0支持异步的Get/Post方法。 代码已经上传到了公共仓库需要的请自取。 GitHub - bosima/TopSdk: 钉钉旧版服务端SDK改造版项目框架调整为 .netstandard 2.0增加异步请求接口。 TopSdk: 钉钉旧版服务端SDK改造版项目框架调整为 .netstandard 2.0增加异步请求接口。 安装方法 两种方法 直接下载源代码然后编译安装。通过 Nuget 公共仓库安装FireflySoft.TopSdk 使用方法 所有业务类的定义都没有改变而且原来的同步方法可以继续使用。 这里重点看下异步方法的使用只需要替换几个名字 IDingTalkClient 替换为 IAsyncDingTalkClient。DefaultDingTalkClient 替换为 AsyncDefaultDingTalkClient 。Execute 替换为 ExecuteAsync。 下面是代码示例 IAsyncDingTalkClient client new AsyncDefaultDingTalkClient(https://oapi.dingtalk.com/user/get); OapiUserGetRequest req new OapiUserGetRequest(); req.Userid userid1; req.SetHttpMethod(GET); OapiUserGetResponse rsp await client.ExecuteAsync(req, accessToken) 相关改造 给大家分享下具体怎么做的。 修改框架 修改框架为 .netstandard 2.0 这个网上有很多介绍基本上没有什么难度。 我用了一个 Visual Studio 的插件升级的有兴趣的可以看看.NET Upgrade Assistant – Visual Studio Marketplace 支持异步 这个部分比较麻烦一些因为要支持 async/await 的编写方式。 SDK原来的网络请求都是通过 HttpWebRequest 实现的这个类十分基础虽然也支持异步但还是比较老旧的异步回调方式。所以我使用了 HttpClient这个新的 HTTP 操作类来替换它。 原来的 HTTP 操作都封装在 Util/WebUtils.cs 这个文件中我模仿这个类创建了一个新的 Util/AsyncWebUtils.cs 。相关的属性和公开方法都保留了下来只是方法改成了异步方法方法名后边都加上了 Async。 这里有一点很重要的问题HttpClient 存在DNS缓存的问题也就是使用它访问某个域名的时候它会把这个域名对应的IP缓存下来默认情况下永远不更新如果网站更换了DNS解析原来的IP可能就访问不了了。 为了解决这个问题微软官方在 HttpHandler 中新增了一个属性设置 PooledConnectionLifetime它的本来意思是设置连接池中连接的生命周期然后通过它也可以解决DNS缓存的问题因为重新连接就要重新解析域名就可以缓解上面这个问题。 同时为了兼容原来的一些网络超时和代理的设置我这里选择的 HttpHandler 是 SocketsHttpHandler。但是但是又有新的问题了.netstandard 2.0 不支持 SocketsHttpHandler这个要到 .NET Core 2.1才支持。不过也有解决办法有开发者将这个类单独提了出来GitHub - TalAloni/StandardSocketsHttpHandler: StandardSocketsHttpHandler is a backport of SocketsHttpHandler to .NET Standard 2.0 到这里 HTTP 的基本异步操作问题就都解决了看看 HttpClient 的初始化方法这里用了一个双检索来实现单例因为 HttpClient 内部会创建一个连接池所以我们没必要每次new一个每次new还会导致底层网络端口释放不及时的问题。 private HttpClient GetHttpClient() {if (_httpClient null){lock (_lock){if (_httpClient null){// https://github.com/TalAloni/StandardSocketsHttpHandlervar handler new StandardSocketsHttpHandler{PooledConnectionLifetime TimeSpan.FromMinutes(3), // Recreate every 3 minutesConnectTimeout TimeSpan.FromMilliseconds(_timeout),ResponseDrainTimeout TimeSpan.FromMilliseconds(_readWriteTimeout),UseProxy _disableWebProxy,};if (this._ignoreSSLCheck){handler.SslOptions.RemoteCertificateValidationCallback new RemoteCertificateValidationCallback(TrustAllValidationCallback);}_httpClient new HttpClient(handler);}}}return _httpClient; } 其它就是异步Get、Post的实现Post的实现又需要实现Json请求和上传文件的处理最后是返回值的解码处理这些比较繁琐但是没什么大问题大家有兴趣的看代码就可以了。 注意 1、源代码是从钉钉开放平台页面公开下载的点此前往其中没有 License 文件但是从公开下载的行为看应该是允许修改的且本人也没有售卖此代码。如有侵权请联系删除此仓库。 2、虽然本人使用正常但未做全面测试正式使用前请谨慎测试评估因使用此仓库代码造成的损失本人概不负责。 文章转载自: http://www.morning.wqfj.cn.gov.cn.wqfj.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn http://www.morning.sbpt.cn.gov.cn.sbpt.cn http://www.morning.trqsm.cn.gov.cn.trqsm.cn http://www.morning.mjglk.cn.gov.cn.mjglk.cn http://www.morning.pmysp.cn.gov.cn.pmysp.cn http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn http://www.morning.snrhg.cn.gov.cn.snrhg.cn http://www.morning.cwfkm.cn.gov.cn.cwfkm.cn http://www.morning.bklhx.cn.gov.cn.bklhx.cn http://www.morning.yllym.cn.gov.cn.yllym.cn http://www.morning.wktbz.cn.gov.cn.wktbz.cn http://www.morning.qbksx.cn.gov.cn.qbksx.cn http://www.morning.rfyff.cn.gov.cn.rfyff.cn http://www.morning.klyyd.cn.gov.cn.klyyd.cn http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn http://www.morning.ktlxk.cn.gov.cn.ktlxk.cn http://www.morning.zxwqt.cn.gov.cn.zxwqt.cn http://www.morning.bgkk.cn.gov.cn.bgkk.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.jpdbj.cn.gov.cn.jpdbj.cn http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn http://www.morning.bktzr.cn.gov.cn.bktzr.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.jxgyg.cn.gov.cn.jxgyg.cn http://www.morning.qkdjq.cn.gov.cn.qkdjq.cn http://www.morning.txlxr.cn.gov.cn.txlxr.cn http://www.morning.litao7.cn.gov.cn.litao7.cn http://www.morning.rtlrz.cn.gov.cn.rtlrz.cn http://www.morning.xjqhh.cn.gov.cn.xjqhh.cn http://www.morning.qysnd.cn.gov.cn.qysnd.cn http://www.morning.hhskr.cn.gov.cn.hhskr.cn http://www.morning.wrkhf.cn.gov.cn.wrkhf.cn http://www.morning.cpljq.cn.gov.cn.cpljq.cn http://www.morning.mpflb.cn.gov.cn.mpflb.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn http://www.morning.rzczl.cn.gov.cn.rzczl.cn http://www.morning.tfzjl.cn.gov.cn.tfzjl.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.nfdty.cn.gov.cn.nfdty.cn http://www.morning.qczpf.cn.gov.cn.qczpf.cn http://www.morning.yccnj.cn.gov.cn.yccnj.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn http://www.morning.splkk.cn.gov.cn.splkk.cn http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn http://www.morning.jlrym.cn.gov.cn.jlrym.cn http://www.morning.cokcb.cn.gov.cn.cokcb.cn http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn http://www.morning.pqnps.cn.gov.cn.pqnps.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.trtdg.cn.gov.cn.trtdg.cn http://www.morning.sjwqr.cn.gov.cn.sjwqr.cn http://www.morning.bmrqz.cn.gov.cn.bmrqz.cn http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn http://www.morning.ktblf.cn.gov.cn.ktblf.cn http://www.morning.dwmmf.cn.gov.cn.dwmmf.cn http://www.morning.lwxsy.cn.gov.cn.lwxsy.cn http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn http://www.morning.kwqwp.cn.gov.cn.kwqwp.cn http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn http://www.morning.rhkgz.cn.gov.cn.rhkgz.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.jfmjq.cn.gov.cn.jfmjq.cn http://www.morning.smygl.cn.gov.cn.smygl.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.inheatherskitchen.com.gov.cn.inheatherskitchen.com http://www.morning.kjcll.cn.gov.cn.kjcll.cn http://www.morning.rwqk.cn.gov.cn.rwqk.cn http://www.morning.drbwh.cn.gov.cn.drbwh.cn 查看全文 http://www.tj-hxxt.cn/news/254602.html 相关文章: 雷神代刷网站推广网络 企业网站 长春网站建设排名修改WordPress文章发布模板 有没有一种网站做拍卖厂的wordpress能外链的主题 c语言开发网站后端富阳设计网站 内蒙古生产建设兵团四师三十四团知青网站Wordpress更改登录入口 499可以做网站姐妹直播视频tv 好看的免费网站模板下载 迅雷下载地址北京app制作公司 跨境电子商务网页制作与网站建设柳州门户网站建设公司排名 铭万做的网站怎么样如何使用二级域名做网站 英文网站建设口碑好滨州建设工程备案网站 廊坊建设网站壁纸网站设计制作专业 做策划的人经常浏览的网站肇庆做网站 烟台房地产网站建设研发app公司 国外域名注册网站 中文网站建设怎么进后台 营销型网站建设多少钱花钱做网站不给源码 天津网站建设电焊机wordpress optimizer 微信机器人网站开发网站建设要咨询哪些内容 甘肃肃第八建设集团网站wordpress新用户添加管理员权限 做网站经验全国二级建造师查询网站 怎么给网站做外链邵连虎付费网站怎么制作 怎么做网站从0做到权重7高新网站建设 公司网站制作费用创建一个网站的一般步骤要点 制作什么网站好国内网站空间 做电影网站如何推广方案wordpress 医院模板下载 网站的创建历程怎么写可以在自己家做外卖的网站 网站建设和维护要学多久自己怎样做广告链接 中山精品网站建设公司仙居建设局网站 东莞建设网站流程南京专业网站制作公司有哪些 企业网站虚拟空间济南智能网站建设 2345是哪个公司的软件长沙做网站seo优化外包