gpt4 book ai didi

c# - HttpWebResponse 上的奇怪对象处置异常

转载 作者:行者123 更新时间:2023-11-30 16:13:11 26 4
gpt4 key购买 nike

我正在开发一个每 5 秒自动查询一次网站的程序。它在过去几天一直运行良好,但今天当我只是重新启动它时,它一直在下面标记的行上抛出 System.ObjectDisposedException。我应该提一下,在同一台机器上通过浏览器访问这个 URL 工作正常。

代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.bitstamp.net/api/ticker/");

request.Method = "GET";

try
{
// ObjectDisposedException thrown here
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string resultString = reader.ReadToEnd();
return resultString;
}
}
}
catch (WebException ex)
{
// Handle it
}

堆栈跟踪:

System.ObjectDisposedException occurred
_HResult=-2146232798
_message=Cannot access a disposed object.
HResult=-2146232798
IsTransient=false
Message=Cannot access a disposed object.
Object name: 'SslStream'.
Source=System
ObjectName=SslStream
StackTrace:
at System.Net.Security.SslState.ValidateCreateContext(Boolean isServer, String targetHost, SslProtocols enabledSslProtocols, X509Certificate serverCertificate, X509CertificateCollection clientCertificates, Boolean remoteCertRequired, Boolean checkCertRevocationStatus, Boolean checkCertName)
InnerException:

我做错了什么吗?在using之前我什至没有访问响应流,如何处理它?<​​/p>

编辑: 添加了 url 和堆栈跟踪

最佳答案

稍微简化一下,只做一个:

WebRequest.Create("https://www.bitstamp.net/api/ticker/").GetResponse();

我收到 WebException“服务器违反了协议(protocol)。Section=ResponseHeader Detail=CR 后必须跟 LF”,apparently表示服务器端存在问题,一种(可能是唯一的)解决方法是将以下内容添加到您的配置文件中:

<system.net> 
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>

无论如何对我有用。

关于c# - HttpWebResponse 上的奇怪对象处置异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22046598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com