解决https 请求过程中SSL问题

最近一个项目中用到了https的请求,在实际调用过程中发现之前的http方法不支持https,调用一直报错。

查询了一下,添加几行代码解决问题。

public string HttpPost(string Url, string postDataStr, string useragent = null)
        {
            ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;//新增一行
            System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;//新增第二行,很重要
            ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);//新增第三行
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
            if (!string.IsNullOrEmpty(useragent))
            {
                request.UserAgent = useragent;
            }
            Stream myRequestStream = request.GetRequestStream();
            StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
            myStreamWriter.Write(postDataStr);
            myStreamWriter.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

return retString;
        }

原文地址:https://www.cnblogs.com/jianliu/p/11225796.html

时间: 2024-09-27 06:49:20

解决https 请求过程中SSL问题的相关文章

解决安装AutoCAD2006过程中遇到的问题

问题: 当我们在安装CAD过程中,任何系统(Windows7.Windows2003.WindowsXP均适用)有时候会出现“CAD 出现致命错误 UNABLE TO LOAD ACDB RESOURCR FILE”和“ 无法启动此程序,因为计算机中丢失ac1st16.dll.acdb16.dll.acge16.dll”的问题. 解答: 这是因为AutoCAD在使用acad.msi安装时没有将文件拷贝至对应目录. 解决: 1.修改系统变量中的Path变量的值包含如下的路径名:“C:\Progra

JS请求服务器,并返回信息,请求过程中不需要跳转页面

js请求服务器,并返回信息,请求过程中不需要跳转页面 这个可以通过jQuery框架轻松实现,jQuery中包含多种ajax的请求方式,详细可以参考下对应 的API. 你上面定义的按钮类型是submit,如果是在form当中,将会自动提交当前form表单,建议,如果可能的话将其修改为button类型. 下面给出通过jQuery的$.post方式,异步获取服务器的JSON数据. 功能代码: <script type="text/javascript"> $(function()

ajax用beforeSend自定义请求过程中客户端事件,提高用户体验

本文为博主原创,未经允许不得转载: 在应用ajax的过程中,当我们再前台提交请求的时候,如果服务端响应事件比较长,就会导致需要等很长时间在前台才能接受到服务端返回的 响应结果,往往会导致用户重复点击按钮,进行重复请求,如何可以避免这种情况发生,ajax提供了一个beforeSend属性,用这个既可以避免这种 情况发生. 用这个属性可以定义客户端向服务端请求过程中的事件,比如在请求过程中禁用请求按钮的属性,或定义请求加载状态等, 实现的代码如下: function exportData(){ $.

兔子IP教你解决日常使用过程中ip被封锁IP被限制的几种方法

兔子IP解决日常使用过程中ip被封锁IP被限制的几种方法 方法1使用多IP:1.IP必须需要,比如ADSL.如果有条件,其实可以跟机房多申请外网IP.2.在有外网IP的机器上,部署代理服务器.3.你的程序,使用轮训替换代理服务器来访问想要采集的网站.好处:1.程序逻辑变化小,只需要代理功能.2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了.3.就算具体IP被屏蔽了,你可以直接把代理服务器下线就OK,程序逻辑不需要变化. 方法2.有小部分网站的防范措施比较弱,可以伪装下IP,修改X-Fo

模拟http或https请求,实现ssl下的bugzilla登录、新增BUG,保持会话以及处理token

1.增加相应httpclient 需要的jar包到工程,如果是maven工程请在pom.xml增加以下配置即可: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.4.1</version></dependency> 2. 新建测试类(完全模拟http请

一个实际问题分析及解决之三:websphere中SSL配置及使用

SSL配置是websphere security中很重要的一部分,具体详细阅读下面内容. http://www.ibm.com/developerworks/websphere/techjournal/0612_birk/0612_birk.html 这里重点分析两个问题:KeyStore和TrustStore的区别以及如何使用websphere的ssl配置. 一. KeyStore和TrustStore的区别 TrustStore主要用于存放public certificate,即公钥.而公钥

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求):调用完成后,图片消失,当前页面运行重新编辑.以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左).当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中):Ajax请求

源代码加密软件-如何解决文件流转过程中的安全问题的?

开发企业内部的数据安全得到有效保障的同时,要关注到环境外部数据安全的流转问题,现在市场上的多数安全加密产品在企业环境外的数据安全防护力度不足,导致具有软件开发知识的人员可以轻松将其破解,获取涉密数据.从安全的角度来分析,环境外部涉及到数据的安全问题解决方案分为两种,一种是在加密环境内进行加密导出,一种是在外部环境内进行加密存储,每一种解决方案都会对加密产品的安全性有较高的要求,要有完整的加密方法,安全的文件加密逻辑,总而言之,不能因涉密文件在外流转时造成涉密的情况发生.下面给大家详细叙述这两种实

log4j 日志信息的引入(通用版)——解决项目运行过程中的日志信息

定义 log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.D