需要一些指导。我试图从中读取公共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失败
答案 0 :(得分:0)
好的,我已经尴尬地想出了这一个。 看来,在我所有的捣乱中,地址发生了变化,并且“深红色”#39;应该是' criimson' - 额外的i,它的工作原理。 这自然会扰乱服务器因此响应。 不知道我是如何实现这一点的,因为它是来自浏览器的剪切和粘贴,哼哼......
您的回复帮我跟踪了这一点,谢谢你。