C# HttpWebRequest-获取;“基础连接已关闭”;错误

C# HttpWebRequest-获取;“基础连接已关闭”;错误,c#,C#,我和这个问题斗争了两天,我真的受够了。我发现什么都不管用 检查以下简单示例代码: HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(updateInfoFileUrl); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //768 for TLS 1.1 and 3072 for TLS 1.2 ServicePointManager.

我和这个问题斗争了两天,我真的受够了。我发现什么都不管用

检查以下简单示例代码:

HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(updateInfoFileUrl);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //768 for TLS 1.1 and 3072 for TLS 1.2
ServicePointManager.ServerCertificateValidationCallback = delegate
{
    return true;
};
fileReq.KeepAlive = false;

WebProxy proxy = new WebProxy();
proxy.BypassProxyOnLocal = false;
proxy.UseDefaultCredentials = true;
proxy.Credentials = CredentialCache.DefaultCredentials;
fileReq.Proxy = proxy;

HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();
Stream stream = fileResp.GetResponseStream();
我尝试了不同的安全协议组合。只使用一个,使用所有的。。。什么都不管用。我尝试了HttpWebRequest、HttpClient甚至XmlDocument.Load。什么都不管用。我每次都犯错误

有什么问题吗

这是我要阅读的文件:


浏览器显示它。甚至邮递员也会展示它。

做了一些调试。您的代码没有问题,但服务器需要用户代理设置。 作品:

失败:

HttpWebRequest fileReq = (HttpWebRequest)WebRequest.Create(@"https://www.example.com/info.xml");

//     fileReq.UserAgent = "sadsad";
fileReq.Method = "GET";

HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();
Stream stream = fileResp.GetResponseStream();

您正在使用.net core吗?您希望从中获取文档的服务器似乎也支持/接受纯HTTP。不需要处理证书可能会让事情变得更容易(甚至可能帮助您解决问题)天哪!你是怎么想出来的?我们的web应用程序/api托管也有同样的问题-如果没有用户代理,它会使任何和所有请求失败,即使它很容易被欺骗。
HttpWebRequest fileReq = (HttpWebRequest)WebRequest.Create(@"https://www.example.com/info.xml");

//     fileReq.UserAgent = "sadsad";
fileReq.Method = "GET";

HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();
Stream stream = fileResp.GetResponseStream();