gpt4 book ai didi

c# - WebClient DownloadString 时底层连接被关闭异常

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

只是一段代码

WebClient wc = new WebClient();
String str = wc.DownloadString(new Uri("http://content.warframe.com/dynamic/rss.php"));

我得到了异常:

An unhandled exception of type 'System.Net.WebException' occurred in System.dll

Additional information: The underlying connection was closed: The connection was closed unexpectedly.

我认为这是 .NET 中的一个错误(我使用的是 3.5),但我尝试了其他方法来获取此链接的内容(它的 rss、xml)。还没有中奖

var webrequest = (WebRequest)HttpWebRequest.Create(@"http://content.warframe.com/dynamic/rss.php");
var resp = webrequest.GetResponse();
//HttpWebResponse webresponse = (HttpWebResponse)webrequest.GetResponse(); // Wont work also

上面这段代码也行不通,都抛出相同的异常

Fiddler 日志:

session 状态:中止。
响应实体大小:512 字节。

== 标志 ==================
BitFlags: [ResponseGeneratedByFiddler] 0x100
X-ABORTED-WHEN:完成
X-客户端IP:127.0.0.1
X-客户端端口:2747
X-导出:2748
X-FAILSESSION-WHEN:读取响应
X-HOSTIP: 205.185.216.10
X-PROCESSINFO: willitwork.vshost:3300

== 时间信息 ============
客户端连接:10:29:11.706
客户端开始请求:10:29:11.713
GotRequestHeaders: 10:29:11.713
ClientDoneRequest:10:29:11.713
确定网关:0ms
DNS 查找:164 毫秒
TCP/IP 连接:74 毫秒
HTTPS 握手:0 毫秒
服务器已连接:10:29:11.953
fiddler 开始请求:10:29:11.953
ServerGotRequest:10:29:11.953
服务器开始响应:10:29:12.372
GotResponseHeaders: 00:00:00.000
ServerDoneResponse: 10:29:12.372
客户端开始响应:10:29:12.385
ClientDoneResponse:10:29:12.385

总耗时:0:00:00.672

响应在传递给客户端之前进行了缓冲。

== WININET 缓存信息 ============
此 URL 不存在于 WinINET 缓存中。 [代码:2]
* 注意:以上数据显示的是 WinINET 当前的缓存状态,而不是请求时的状态。
* 注意:以上数据仅显示 WinINET 的中等完整性(非保护模式)缓存​​。

此外 - 504,这没有意义,因为我可以通过 chrome/firefox/ie 从链接获取数据......

我这样做是为了用其他语言工作,但我不得不用 C# 来做(我已经编写了 2 很多代码来重写它)

我已经添加了一些像fiddler所说的设置

myHttpWebRequest1.ProtocolVersion = HttpVersion.Version11;
myHttpWebRequest1.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36";
myHttpWebRequest1.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";

至少现在我得到 504 错误而不是“未知”,但我仍然可以通过网络浏览器查看内容,所以 504 错误是假的

编辑:添加时没有响应错误

myHttpWebRequest1.Headers["Accept-Encoding"] = "gzip";

但是现在输出是乱七八糟的,不可读

最佳答案

我有同样的错误。

您可以将User Agent 添加到您的httpRequest

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";

关于c# - WebClient DownloadString 时底层连接被关闭异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24719507/

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