Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >HTTP请求PowerAutomate错误:”基础连接已关闭,发送时发生错误”

HTTP请求PowerAutomate错误:”基础连接已关闭,发送时发生错误”

作者头像
Damon小智
发布于 2024-02-03 02:25:37
发布于 2024-02-03 02:25:37
98300
代码可运行
举报
文章被收录于专栏:全栈文档库全栈文档库
运行总次数:0
代码可运行

我们经常会写post请求将我们需要传递的参数传递给目标地址端口,最近在写PowerAutomate的http触发流时遇到了这个问题,我对PowerAutomate的触发器URL发送post请求,但没有成功,后端捕获的异常为”基础连接已关闭,发送时发生错误”。这个问题是于安全协议导致的,更换安全协议类型即可。

这个问题是由于安全协议导致的,更换安全协议类型即可。

可用代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System;
using System.IO;
using System.Net;
using System.Text;

//传入目标地址Url和Post的参数jsonParas,返回目标端口的响应返回值
public static string HttpRequestByPost(string Url, string jsonParas) {

  //设置服务属性
  ServicePointManager.Expect100Continue = true;
  ServicePointManager.CheckCertificateRevocationList = true;
  ServicePointManager.DefaultConnectionLimit = 100;
  ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;//这里设置了协议类型
  ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

  //创建一个HTTP请求
  string strURL = Url;
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
  request.Method = "POST";
  request.ContentType = "application/json";
  request.Accept = "*/*";
  byte[] payload;
  string paraUrlCoded = jsonParas;
  payload = Encoding.UTF8.GetBytes(paraUrlCoded);
  request.ContentLength = payload.Length;

  //发送请求,获得请求流 
  Stream writer;
  try {
    writer = request.GetRequestStream();
  }
  catch (Exception) {
    writer = null;
    Console.Write("连接服务器失败!");
  }
  writer.Write(payload, 0, payload.Length);
  writer.Close();

  //获得返回值
  HttpWebResponse response;
  try {
    response = (HttpWebResponse)request.GetResponse();
  }
  catch (WebException ex) {
    response = ex.Response as HttpWebResponse;
  }
  Stream s = response.GetResponseStream();
  StreamReader sRead = new StreamReader(s);
  string postContent = sRead.ReadToEnd();
  sRead.Close();
  return postContent;

}

解决问题的核心代码是这段服务属性配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//设置服务属性
ServicePointManager.Expect100Continue = true;
ServicePointManager.CheckCertificateRevocationList = true;
ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;//这里设置了协议类型
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

其中协议类型那一行,需要根据.Net的版本进行调整。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*.net 4.0 设置:*/
 ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
/*.net 4.5 设置(只要写SecurityProtocolType能够点出来的属性就可以):*/
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12|| SecurityProtocolType.Ssl3 || SecurityProtocolType.Tls11 || SecurityProtocolType.Tls;

Damon_Liu

Damon, Chinese, Liu Guangzhi, Software development engineer, CSDN quality creator, Ali Cloud expert blogger, Microsoft Technology Associate, Good at C#, Java, PHP, Python, etc, Love sports, Workaholic, Communist.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
  前段时间在对接第三方接口的时候发生了一个非常奇葩的问题,就是使用 .NET Framework 4.6 HttpWebRequest进行网络请求的相关问题。背景,关于调用第三方的接口都是使用使用自己封装的一个HttpWebRequestHepler帮助类,在本地开发时调用第三方接口都是正常的。然而当我部署到运维给我一个服务器(阿里云服务器)时刚开始提示是请求被中止: 未能创建 SSL/TLS 安全通道,之后经过一番修改以后就是提示基础连接已经关闭: 发送时发生错误。之后尝试了各种方法,还是没有办法解决基础连接已经关闭: 发送时发生错误这个问题。最后真的是无能为力,光这个问题找了一下午的解决方案,最后换到了我自己的阿里云服务器是可以正常调通第三方接口的。然后让运维看了下服务器结果是这个服务器都没有开通外网,所以导致了这个问题的出现。下面记录下问题排除的过程,希望能够帮助到遇到这种坑的小伙伴。
追逐时光者
2021/04/20
10.1K0
.NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
c# HttpWebRequest 解决 请求HTTPS慢
其实就几行代码 if (strUrl.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { request.Credentials = CredentialCache.DefaultCredentials; ServicePointManager.ServerCertificateValidationCallback = new RemoteCertific
冰封一夏
2021/11/19
1.2K0
c# HttpWebRequest https的一些处理
1、当使用https请求的时候需要确定加密协议是哪个,这个可以通过火狐查看到,如下图
冰封一夏
2019/09/11
3.2K0
[C#]C#出现未能创建SSL/TLS安全通道解决方法
背景:我们公司的NGINX不支持SSLv2和SSLv3,所以当前端使用这两个的时候,就会出现“未能创建SSL/TLS安全通道”问题。
云未归来
2025/07/21
1560
C# HttpWebRequest 请求遇到最坑(史上最坑)的一个问题,分析加解决方案
request.ServicePoint.Expect100Continue = false;
Shunnet
2021/06/11
14.7K0
c# Https Post Get
// 输入代码内容 /// <summary> /// https post工具类 /// @author lishuai /// @date 20220524 10:15 /// </summary> public class HttpTools { public static string GetUrl(string url) { HttpWebRequest request = null;
BrianLee
2022/05/27
1.2K0
c# Https Post Get
c# 查询本机可用的代理ip
现在有很多网站都提供免费的代理ip,但是你会发现很多网站显示的可以用的 ,在自己电脑上是用不了,写个小代码提取出自己电脑上可以用的代理,没什么技术含量,只是为了记录一下
冰封一夏
2019/09/10
1.1K0
c# 查询本机可用的代理ip
C# 两种方案实现调用 DeepSeek API
DeepSeek(深度求索) 最近可谓火爆的一塌糊涂,具体的介绍这里不再赘述,您可以各种搜索其信息,即使您不搜索,只要您拿起手机,各种关于 DeepSeek 的新闻、资讯也会扑面而来的推送到您面前。本人在闲暇之余也想了解一下其提供 API 的支持能力,也想试验一下 “嵌入式” 的应用体验。
初九之潜龙勿用
2025/02/11
5290
C# 两种方案实现调用 DeepSeek API
C# 解决“因为算法不同,客户端和服务器无法通信”的问题
实现微信退款功能,我们需要在微信支付商户后台申请安全证书,并调用退款API URL。在调试过程中为增添返回调试信息属性,重新对.net FrameWorkd 类库进行编译并部署,调试一切正常,但再次覆盖的时候,调用显示为 “ 因为算法不同,客户端和服务器无法通信。” ,系统返回错误:
初九之潜龙勿用
2024/12/28
2500
C# 解决“因为算法不同,客户端和服务器无法通信”的问题
C# 关于“您与该网站的连接不是私密连接...”的问题
最近在访问开发的微信支付功能时遇到了无法访问令牌的错误,这个错误是公司内部应用程序接口返回的访问错误。经过排查是访问 HTTPS 站点遇到的错误,提示证书风险,在浏览器中显示的调用 URL,显示结果如下图:
初九之潜龙勿用
2024/09/25
3380
C# 关于“您与该网站的连接不是私密连接...”的问题
模拟POST登录证监会保证金网站
登录页面[url1]: https://investorservice.cfmmc.com/
徐大嘴
2019/03/21
1.1K0
通过证书请求Https站点
前几天在做与平安银行对接接口,主要是给平安银行推送用户数据(申请贷款的用户),平安银行提供的是https的地址,请求https地址的时候还要发送证书,刚接到这个任务的时候一头雾水,百度上各种所搜,最后还是给解决了。
写代码的猿
2019/04/11
1.3K0
通过证书请求Https站点
C# 中HttpWebRequest发起HTTP请求,如何设置才能达到最大并发和性能
在C#中使用HttpWebRequest发起HTTP请求时,达到最大并发和性能可以从以下几个方面改进:
郑子铭
2023/12/13
1.8K0
C# 中HttpWebRequest发起HTTP请求,如何设置才能达到最大并发和性能
C#发送HTTP请求自动登录Web网站
研究生期间不可少的一项任务——报账,今天8点准时点击财务取票系统(8点开放取票)结果取到了100号,每天财务(具体财务几科就不多说了)差不多就能处理30个左右的号吧!连续好几天了,报个帐我容易吗!哎,不说了,说多了都是泪。只想好好搞研究,争取顺利离开武大。好好加油吧!
卡尔曼和玻尔兹曼谁曼
2019/01/25
1.8K0
C# http Get/POST请求封装类
http://www.sufeinet.com/thread-3-1-1.html
跟着阿笨一起玩NET
2018/09/20
3.1K0
C#中HttpWebRequest的用法详解
HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。它们支持一系列有用的属性。这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的。请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的。另外,你可能预计需要显式地调用一个“Send”方法,实际上不需要。接下来调用 HttpWebRequest.GetResponse()方法返回的是一个HttpWebResponse对象。你可以把HTTP响应的数据流 (stream)绑定到一个StreamReader对象,然后就可以通过ReadToEnd()方法把整个HTTP响应作为一个字符串取回。也可以通过 StreamReader.ReadLine()方法逐行取回HTTP响应的内容。
全栈程序员站长
2022/09/14
4.9K0
C#创建https请求并使用pfx证书
WebRequest req = WebRequest.Create(url);
拓荒者IT
2019/09/26
1.7K0
C#版使用融合通信API发送手机短信息
融合云通信服务平台,为企业提供全方位通信服务,发送手机短信是其一项核心功能,本文将讲述如何使用融合云服务API为终端手机用户发送短信信息,并使用 C# 进行实现。
初九之潜龙勿用
2024/11/24
3330
C#版使用融合通信API发送手机短信息
C# 解决访问 API 显示基础连接已经关闭的问题
最近在 Web 部署百度 AI 图像识别 AipSdk.dll 封装库的时候,在调用OCR图像识别 API 的时候,显示为 “ 基础连接已经关闭: 接收时发生错误。” ,并且运行后直接崩溃:
初九之潜龙勿用
2024/12/17
2550
C# 解决访问 API 显示基础连接已经关闭的问题
DingTalk机器人C#代码
        前面已经介绍了机器人的事情,今天直接贴一下代码。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Sys
@坤的
2018/06/04
1K0
推荐阅读
相关推荐
.NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档