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

成都网站推广技巧腾云公司做网站

成都网站推广技巧,腾云公司做网站,支持微信打开的wordpress,wordpress 微博模板从虚拟机调用本地API报各种 SSL 连接不上的错误,这给本地调试造成了极大的不便,在被这个问题困扰了多日以后,终于在GitHub上找到答案 基于这个 帖子 ,有一个回复 他写了一个帮助类,专门用来调试本地的API,…

从虚拟机调用本地API报各种 SSL 连接不上的错误,这给本地调试造成了极大的不便,在被这个问题困扰了多日以后,终于在GitHub上找到答案

基于这个 帖子 ,有一个回复

他写了一个帮助类,专门用来调试本地的API,并给出了这个调用类的用法,此帮助类如下

using System.Net.Security;public class DevHttpsConnectionHelper
{public DevHttpsConnectionHelper(int sslPort){SslPort = sslPort;DevServerRootUrl = FormattableString.Invariant($"https://{DevServerName}:{SslPort}");LazyHttpClient = new Lazy<HttpClient>(() => new HttpClient(GetPlatformMessageHandler()));}public int SslPort { get; }public string DevServerName =>
#if WINDOWS"localhost";
#elif ANDROID"10.0.2.2";
#elsethrow new PlatformNotSupportedException("Only Windows and Android currently supported.");
#endifpublic string DevServerRootUrl { get; }private Lazy<HttpClient> LazyHttpClient;public HttpClient HttpClient => LazyHttpClient.Value;public HttpMessageHandler? GetPlatformMessageHandler(){
#if WINDOWSreturn null;
#elif ANDROIDvar handler = new CustomAndroidMessageHandler();handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) =>{if (cert != null && cert.Issuer.Equals("CN=localhost"))return true;return errors == SslPolicyErrors.None;};return handler;#elsethrow new PlatformNotSupportedException("Only Windows and Android currently supported.");
#endif}#if ANDROIDinternal sealed class CustomAndroidMessageHandler : Xamarin.Android.Net.AndroidMessageHandler{protected override Javax.Net.Ssl.IHostnameVerifier GetSSLHostnameVerifier(Javax.Net.Ssl.HttpsURLConnection connection)=> new CustomHostnameVerifier();private sealed class CustomHostnameVerifier : Java.Lang.Object, Javax.Net.Ssl.IHostnameVerifier{public bool Verify(string? hostname, Javax.Net.Ssl.ISSLSession? session){returnJavax.Net.Ssl.HttpsURLConnection.DefaultHostnameVerifier.Verify(hostname, session)|| hostname == "10.0.2.2" && session.PeerPrincipal?.Name == "CN=localhost";}}}
#endif
}

 在安卓机里面是没有 localhost 的,也没有 127.0.0.1 代表本机的取而代之的是 10.0.2.2 。在 HTTPS 里面,证书是被强制使用的,本地 Web API 会有一个默认证书,他里面带一个 “CN=localhost” 所以上面的类针对这个进行了过滤,并且 Android 的底层用的不是默认的 .net 的 HttpClient ,使用了 GetPlatformMessageHandler 进行了重写,这个可是Java 的包。

我的本地调用使用

                            var devSslHelper = new DevHttpsConnectionHelper(sslPort: 5001);_blazorHubConnection = new HubConnectionBuilder()
#if ANDROID.WithUrl(devSslHelper.DevServerRootUrl + "/hubs/devicehub", configureHttpConnection: o =>{o.HttpMessageHandlerFactory = m => devSslHelper.GetPlatformMessageHandler();})
#else.WithUrl(devSslHelper.DevServerRootUrl + "/hubs/devicehub")
#endif.Build();

这个时候就不报 SSL 的连接错误了,可以方便的正常调试

http://www.yayakq.cn/news/344384/

相关文章:

  • 做网站月收入多少乐陵seo
  • 福州 哈尔滨网站建设 网络服务建设网站技术标准
  • 黄岛英文网站建设长春关键词推广
  • 软件网站开发合同phonegap wordpress
  • 南京免费自助建站模板贵阳网站建设方案
  • 微网站建设哪家强网站兼容浏览器服务
  • 辽宁工程招投标信息网网站建设优化过程中的优化策略
  • d网站建设的目的中信建设有限责任公司是上市公司吗
  • 网站开发的编程语言学做美食饮品网站
  • 耐克运动鞋网站建设规划书框架微网页制作模板
  • 网站推荐软件那些做测评的网站好
  • 网站建设集群化的必要青岛企业级网站设计
  • 做美食视频的网站企业网站的功能
  • jsp写的网站网络服务费计入什么科目
  • 做机械加工外贸网站哪家好1m带宽做网站快不
  • 一站式服务中心生物科技 网站模板下载
  • 泉州网站优化排名推广建设门户网站申请
  • 能从源代码黑进网站修改数据吗网站建设价格专注制作网站设计
  • 学网站建设前景网站开发属于软件吗
  • 专业购物网站建设哪家好做网站收多少钱
  • 业绩显示屏 东莞网站建设技术支持有限公司属于什么企业类型
  • 租房网站开发需求文档密码管理admin
  • 珠海医疗网站建设音乐视频怎么做mp3下载网站
  • 个人网站可以做产品宣传吗西安网站设计
  • 深圳专门网站建设庆阳网站设计 贝壳下拉
  • 企业门户网站开发源码吉安网站建设jxthw
  • 邯郸做外卖网站的公司网店运营模式有哪些
  • 杭州知名网站建设公司公共数据开放网站建设
  • 那个网站有题做兰州seo网站建设
  • 微信公众平台号登录官网网络推广与seo的区别在哪里