XmlReader.Create()远程服务器返回错误:(403)Forbidden / Ok in Browser

时间:2018-01-24 20:37:50

标签: c# rss xmlreader

需要一些指导。我试图从中读取公共RSS源     http://data.eso.sa.gov.au/prod/cfs/crimson/cfs_current_incidents.xml

我可以通过任何浏览器读取它而没有问题,但通过代码这样做产生"远程服务器返回错误:(403)禁止"错误。

我已插入各种用户代理以尝试解决问题,但完全失败了。 我不明白为什么它在浏览器中有效但在我的代码中无效。我对其他供稿使用相同的代码,当然任何权限问题都适用于浏览器以及我的代码吗?

这里是相关的//代码:

WebClient webClient = new WebClient();
// webClient.Headers.Add("user-agent", "Chrome/15.0.874.121");
// webClient.Headers.Add("User-Agent: Other");
// webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/57.0.4");
webClient.Headers.Add("user-agent", " Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136");

using (XmlReader xr = XmlReader.Create(webClient.OpenRead("http://data.eso.sa.gov.au/prod/cfs/crimson/cfs_current_incidents.xml")))
   {  //etc etc
   }

它在XmlReader.Create失败

1 个答案:

答案 0 :(得分:0)

好的,我已经尴尬地想出了这一个。 看来,在我所有的捣乱中,地址发生了变化,并且“深红色”#39;应该是' criimson' - 额外的i,它的工作原理。 这自然会扰乱服务器因此响应。 不知道我是如何实现这一点的,因为它是来自浏览器的剪切和粘贴,哼哼......

您的回复帮我跟踪了这​​一点,谢谢你。