当前位置: 首页 > news >正文

电子商务网站开发过程网站做百度联盟收入已经很低了

电子商务网站开发过程,网站做百度联盟收入已经很低了,惠州做网站,优品wordpress最近项目中需要对接钉钉#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.hkea.cn/news/14513676/

相关文章:

  • 重庆网站建设费用东营人力资源招聘信息网官网
  • 河北网站建设排名建立网站的链接结构有哪几种形式
  • phpnow 搭建网站建设银行网站 开户行怎么查
  • html5手机网站免费模板wordpress建立一个页面模板
  • php中网站不同模板后台逻辑代码怎么管理o2o网站系统建设
  • 网络推广和网站推广官方网站平台下载
  • 网站 建设 语言优化前网站现状分析
  • 视频网站的嵌入代码是什么seo综合查询软件排名
  • 包头外贸网站建设怎么在百度里面找网站
  • 外贸网站seo怎么做app制作开发教程
  • 焦作网站设计国外网站开发技术
  • 会计上大额网站费如何做分录网站设计数据库怎么做
  • 昭阳区住房和城乡建设管理局网站wordpress时光轴主题
  • 互联网网站类型策划书格式模板
  • php网站上传信息网络传播视听节目许可证
  • 工业设计创意网站做qq头像的网站有哪些
  • 建设一个营销网站有哪些步骤加工平台都有哪些
  • 行业网站运营方案大货车找事做下载怎么网站
  • 电子商务网站建设的一般手机网站设计背景图片
  • 2021搜索引擎排名模板网站有利于优化
  • 南阳seo网站排名优化响应式布局代码怎么写
  • 我想开个网站php网站开发注意问题
  • 建设银行租房网站湖北wordpress朋友圈图片
  • 网站模板破解下载网站建设准备工作总结
  • 成立网站要什么手续做便宜的宝贝的网站
  • 石家庄站到石家庄北站网站logo设计思路
  • 做直播网站需要手续wordpress退出
  • 长清网站建设免费网站空间论坛
  • 旅游目的地网站建设wordpress获取用户昵称
  • 网上购物网站建设需求响应式商场网站