最近有个应用需要发送http/https webrequest,调用php https接口时注意设置 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; c#代码如下:

        /// <summary>/// Send Json Http Request/// </summary>/// <param name="requestURI"></param>/// <param name="json"></param>/// <returns></returns>public string SendHttpRequest(string requestURI, string json){//json格式请求数据string requestData =  "query="+json;//URLstring serviceUrl = string.Format("{0}", requestURI);System.Text.RegularExpressions.Regex _reg = new System.Text.RegularExpressions.Regex("^https://",System.Text.RegularExpressions.RegexOptions.IgnoreCase);if (_reg.IsMatch(serviceUrl)){ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);}HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);//utf-8编码byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(requestData);//post请求myRequest.Method = "POST";myRequest.ContentLength = buf.Length;//指定为json否则会出错//myRequest.ContentType = "application/json";myRequest.ContentType = "application/x-www-form-urlencoded";myRequest.MaximumAutomaticRedirections = 1;myRequest.AllowAutoRedirect = true;myRequest.KeepAlive = false;Stream newStream = myRequest.GetRequestStream();newStream.Write(buf, 0, buf.Length);newStream.Close();//获得接口返回值,格式为: {"name":"value"} HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);string ReqResult = reader.ReadToEnd();reader.Close();myResponse.Close();return ReqResult;  }public bool CheckValidationResult(object sender,System.Security.Cryptography.X509Certificates.X509Certificate certificate,System.Security.Cryptography.X509Certificates.X509Chain chain,System.Net.Security.SslPolicyErrors errors){//直接确认,不然打不开return true;}#endregion

webrequest 访问https url代相关推荐

  1. curl 忽略证书访问 https

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具.然而在使用cr ...

  2. VC++访问HTTPS服务器(不受限制)

    之前用VC客户端访问HTTPS服务器时,遇到"认证作者无效或者不正确","证书已失效"及类似的问题相当棘手,在这里我把可以忽略这些认证的方法写出来,让遇到相同问 ...

  3. jodd忽略ssl证书_关于java访问https资源时,忽略证书信任问题

    java程序在访问https资源时,出现报错 sun.security.validator.ValidatorException: PKIX path building failed: sun.sec ...

  4. Spring RestTemplate 访问https站点

    RestTemplate 是Spring对HttpClient的封装, API的调用和结果的解析更简单了.举例来说,访问一个站点并获取结果的代码只需要两行代码就可以了,类似: String url = ...

  5. HttpClient 使用证书访问https站点

    使用HttpClient访问https 站点时,如果JRE或者JDK没有导入某个站点的证书,则会报如下错误: javax.net.ssl.SSLHandshakeException: sun.secu ...

  6. Tomcat创建HTTPS访问,java访问https

    一 https和ssL HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...

  7. 处理HttpWebRequest访问https有安全证书的问题

    处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道.) string strUrl = "https://xx.xx.xx.x ...

  8. javascript 微信企业号APP应用URL转换成PC端可正常访问的URL

    时间过得飞快,准备写些东西的时候才发现自己快一年半没有写blog了,写这些东西只是为了记录下来自己走过的坑,为下次遇见同类的问题能够迅速解决,毕竟人脑有限,存储下来以备不时之需. 一:背景(功能需求) ...

  9. curl+个人证书访问https站点

    目前,大公司的OA管理系统(俗称内网),安全性要求较高,通常采用https的双向 认证模式. 首先,什么是https,简单的说就是在SSL协议之上实现的http协议(get.post等操作) 什么是双 ...

最新文章

  1. page rank算法
  2. (视频+图文)机器学习入门系列-第3章 逻辑回归
  3. wxWidgets:HtmlLbox wxWidgets 示例
  4. 连接maven_Maven系列——超简单入门级教程
  5. 视频播放器for android
  6. Python统计列表中的重复项出现的次数的方法
  7. 如何在Hibernate中维护表的历史记录
  8. SQL Cookbook:二、查询结果排序(1)以指定的次序返回查询结果
  9. AWS安装CDH5.3-CentOS6.4中关键操作步骤
  10. PUC的完整形式是什么?
  11. pandas滑动窗口防止nan出现
  12. PHP从入门到接到外包合同,再到放弃
  13. 20天学会UI设计(PS+AI)入门教程
  14. 图片旋转90度解决的方法
  15. 跑步时戴什么耳机好、推荐几款专业跑步的耳机
  16. 迦瓦栈队 团队第六周项目总结
  17. WPS office文档 为何输入文字不显示
  18. 计量大学计算机学院,计算机科学与技术
  19. SD省队集训2019Day11之“loopy”
  20. ubuntu9.04安装xmms

热门文章

  1. 灵动微电机控制的工业级MCU
  2. 第四周-圆柱体的表面积
  3. 长春光机所计算机待遇,有谁知道长春光机所的工资待遇怎么样?硕士一年的收入大概是多少?...
  4. IDEA自定义注释模板实现方法。
  5. Linux Terminal 下工具栏显示设置
  6. 迅雷批处理:漫画下载利器!(娘王下载为例)
  7. 现在Python就业很难吗?百万程序员都在关心的问题
  8. 云原生之docker详细知识技能介绍与实战
  9. 提交按钮在form之外的提交方式,提交按钮提交页面任意表单
  10. uni-app(Vue.js)创建运行微信小程序