.net webclient返回500错误,但浏览器中的url是正确的

本文关键字:url 浏览器 返回 webclient 错误 net | 更新日期: 2023-09-27 18:03:17

当我通过web客户端连接到url时,它返回一个500内部服务器错误。我可以在浏览器中访问这个URL。这已经工作了几个月了,昨天开始出现问题。我这边没有变化。我知道状态码为500是服务器错误,但我想看看我现在是否还能做些什么,因为我很害怕。

示例url: http://www.myfitnesspal.com/reports/printable_diary/chuckgross?from=2015-07-17&to=2015-07-17

代码:

 string results;
 using (var client = new WebClient())
 {
    results = client.DownloadString(url);
 }

这给出了一个异常:远程服务器返回了一个错误:500.

使用Fiddler,我看到一个页面返回,这是他们的"站点关闭"页面的消息:"对不起,但是服务器错误发生处理您的请求。我们的团队已经收到了这个问题的通知。

有什么是我可以做的,因为URL本身在浏览器中工作良好?有其他方法可以尝试排除故障吗?

.net webclient返回500错误,但浏览器中的url是正确的

似乎他们试图通过查询User-Agent标头来检测服务器端的浏览器版本,但不要期望它丢失。

要修复客户端的错误,您可以在发送请求之前使用ie9填充它:

client.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)";

当服务器在使用WebClient类时返回HTTP错误时收到异常是正常的,这表明服务器无法成功完成请求。但是,这并不意味着它没有返回正确的html响应。您应该捕获异常,在那里您可以获得响应stream对象并从中提取数据。

另一种可能是浏览器通过的用户首选语言。这就是导致我的问题,因为API正在寻找它,但我没有提供它。