首页 > 其他分享 >HTTPS请求笔记- SSL安全通道验证问题

HTTPS请求笔记- SSL安全通道验证问题

时间:2024-07-19 15:29:40浏览次数:10  
标签:string Headers httpRequestMessage 笔记 sign SSL Add HTTPS new

一直以来,遇到的POST接口请求都是 键值对的json格式,最近对接了不少公安,发现body 的请求体都是直接放置字符串,虽然postman 中会报红,但是仍然可请求成功

            using (HttpClientHandler handle = new HttpClientHandler())
            using (HttpClient httpClient = new HttpClient(handle))
            {
                HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url);
                string appKey = "xxxx";
                //构造签名相关
                string timeStamp = "";
                string sign = GetSign(ref timeStamp, appKey);
                httpRequestMessage.Headers.Add("sign", sign);
                httpRequestMessage.Headers.Add("参数1", timeStamp);
                httpRequestMessage.Headers.Add("参数2", "xxxx");

                //var requestData = new { sign = args };  取消键值对,直接放body值 
                StringContent content = new StringContent(args, Encoding.UTF8, "application/json");
                httpRequestMessage.Content = content;
                var httpResponseMessage = httpClient.SendAsync(httpRequestMessage);
                string result = httpResponseMessage.Result.Content.ReadAsStringAsync().Result;
                return JsonConvert.DeserializeObject<dynamic>(result);
            }

在通过 https 请求时,有时候会遇到过安全验证问题,比如什么SSL, TLS啥的, 不得不说AI确实方便,一键输入,直接对话出结果,虽然时常不怎么靠谱,但是也提供了很多好思路,很适合比较社交恐惧的马龙, 需要设置一下证书回调,安全协议

           
            if (url.StartsWith("https"))
            {
//设置证书,设置安全协议 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate; } using (HttpClientHandler handle = new HttpClientHandler()) using (HttpClient httpClient = new HttpClient(handle)) { HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url); string appKey = "xxxx"; //构造签名相关 string timeStamp = ""; string sign = GetSign(ref timeStamp, appKey); httpRequestMessage.Headers.Add("sign", sign); httpRequestMessage.Headers.Add("参数1", timeStamp); httpRequestMessage.Headers.Add("参数2", "xxxx"); //var requestData = new { sign = args }; 取消键值对,直接放body值 StringContent content = new StringContent(args, Encoding.UTF8, "application/json"); httpRequestMessage.Content = content; var httpResponseMessage = httpClient.SendAsync(httpRequestMessage); string result = httpResponseMessage.Result.Content.ReadAsStringAsync().Result; return JsonConvert.DeserializeObject<dynamic>(result); }

回调方法的实现

        private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            return true;
        }

 

标签:string,Headers,httpRequestMessage,笔记,sign,SSL,Add,HTTPS,new
From: https://www.cnblogs.com/Sientuo/p/18311575

相关文章

  • Ubuntu安装openssl-1.1.1
    切换root用户下载源文件:https://www.openssl.org/source/old/1.1.1/index.html./configshared--prefix=/usr/local/openssl--openssldir=/usr/local/opensslmake&&makeinstall备份原来的opensslmv/usr/bin/openssl/usr/bin/openssl.bak创建软链接到系统位置ln-s......
  • 算法刷题笔记 字符串哈希(C++实现)
    文章目录题目描述基本思路实现代码题目描述给定一个长度为n的字符串,再给定m个询问,每个询问包含四个整数l1,r1,l2,r2,请你判断[l1,r1]和[l2,r2]这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数n和m,表示字符......
  • 算法刷题笔记 八数码(C++实现)
    文章目录题目描述基本思路实现代码题目描述在一个3×3的网格中,1∼8这8个数字和一个x恰好不重不漏地分布在这3×3的网格中。例如:123x46758在游戏过程中,可以把x与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下......
  • HTML5笔记
    HTML5什么是HTML5定义万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改环境支持Html5的浏览器包括Firefox(火狐浏览器),IE9及其更高版本,Chrome(谷歌浏览器),Safari,Opera等;国内的傲游浏览器(Maxthon),以及基于IE或Chromium(Chrome的工程版或称......
  • [MAUI 项目实战] 笔记App(二):数据库设计
    @目录Sqlite配置创建实体笔记实体类笔记分组实体笔记片段实体笔记片段负载实体笔记片段仓库实体笔记模板(场景)实体笔记片段模板实体笔记片段模板负载实体配置EF创建映射迁移和种子数据项目地址Sqlite配置应用程序里使用Sqlite作为数据库,使用EntityFramworkCore作为ORM,使用CodeFir......
  • 【笔记】Set - 容斥原理/二项式反演
    https://www.becoder.com.cn/contest/5400「BZOJ2863」愤怒的元首题目就是求\(n\)个点DAG的数量。设\(dp_i\)表示\(i\)个点的DAG数量。首先DAG一定存在出度为\(0\)的点,其次删去出度为\(0\)的点,仍构成一个DAG。所以我们可以枚举删去的数量,从而划分子问题。......
  • CAST论文阅读笔记
    IsItEnoughJustLookingattheTitle?:LeveragingBodyTextToEnrichTitleWordsTowardsAccurateNewsRecommendation论文阅读笔记Abstract​ 在新闻推荐系统中,如果用户通过查看新闻标题对文章主题感兴趣,就会倾向于点击该文章。这种行为是可能的,因为在查看标题时,人类......
  • 笔记本新手入门:从零开始的全面指南
        踏入笔记本电脑的世界,就像打开了一扇通往无限可能的大门。无论你是学生、职场新人,还是追求生活品质的自由职业者,一台得心应手的笔记本都能成为你学习、工作和娱乐的得力伙伴。然而,对于笔记本新手而言,初次接触时的困惑和挑战在所难免。从开机那一刻起,如何快速掌握基......
  • 开发日志:windows修复SSL漏洞CVE-2016-2183(3389端口)
    漏洞危害:具有足够资源的中间人攻击者可利用此漏洞,通过“birthday”攻击检测会在固定密码与已知纯文本之间泄露XOR的冲突,进而泄露密码文本(例如安全HTTPSCookie),并可能导致劫持经认证的会话。参见《支持SSL64位块大小的密码套件(SWEET32)-修复方案》参考资料:https://blog.cs......
  • 【笔记】辛普森算法
    核心思想是将被积区间分为若干小段,每段套用二次函数的积分公式进行计算。具体而言,对于一个二次函数\(f(x)\),有:\[\int_{l}^{r}f(x)\mathrm{d}x=\frac{(r-l)\left(f(l)+f(r)+4f\left(\frac{l+r}{2}\right)\right)}{6}\]1普通辛普森直接分成若干段来计算。2自适应辛普森......