【发布时间】:2023-03-31 17:18:01
【问题描述】:
我正在尝试使用 WebClient / HttpWebRequest 从服务器下载一些数据。我使用以下代码:
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("admin", "password");
Stream datastream = client.OpenRead("http://routerlogin.com/cgi-bin/CF_logs.html");
StreamReader reader = new StreamReader(datastream);
服务器是我的页面在我的路由器配置中。它在浏览器上运行良好,但是当使用我的代码下载时,它会抛出带有消息的WebException
服务器违反了协议。 Section=ResponseHeader Detail=CR 后面必须跟 LF,在 WinForms 中?
如果他们使用 ASP.net,我找到了一种解决方案,将以下内容添加到 web.config:
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>
但是,我正在制作一个 WinForms 应用程序,所以这对我不起作用。有什么方法可以解决这个问题?
【问题讨论】:
-
这应该适用于所有类型的应用程序,而不仅仅是 asp.net
-
我应该在哪里添加它?没有 web 或 app.config。
-
我遇到的奇怪的事情是,在我们网络的一台电脑上出现该错误,但另一台具有相同应用程序的电脑工作正常。当我添加上面提到的条目时,pc 也开始正常工作。问题是为什么这个问题只是在单台电脑上(确实有新安装)
-
只是想补充一下我的经验,这与 Kamran Shahid 相同,实际上所有其他计算机都可以工作,但我的却没有。我唯一的猜测是我在 Fiddler 中看到的奇怪字符,当我检查响应标头时,并且在其中一个 set-cookie 传递的中间。 Notepad++ 将这个特殊的字符渲染为 SOH,我用谷歌搜索它是标题的开始。 [链接]eureka.greenhead.com/… 读完这篇文章后,我不确定除了服务器还有很多其他事情要做。上面的配置更改没有解决它。
标签: c# winforms httpwebrequest webclient system.net.webexception