我正在尝试拼凑一个问题的解决方案。基本上,我使用 Silverlight 4 和 C# 4.0 来访问魔兽世界的军械库。如果有人这样做了 - 请哦,请提供有效的 .net 4.0 代码。
我试图运行的代码是(e.Error 包含安全错误):
private void button10_Click(object sender, RoutedEventArgs e)
{
string url = @"http://eu.wowarmory.com/guild-info.xml?r=Eonar&n=Gifted and Talented";
WebClient wc = new WebClient();
// HOW DO I ADD A USER AGENT STRING (RESPONSE MAY VARY (I.E. HTML VS XML) IF PAGE THINKS CALL IS NOT CAPABABLE OF SUPPORTING XML TRANSFORMATIONS)
//wc.ResponseHeaders["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)";
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri(url));
}
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
string result = e.Result;
XDocument ArmouryXML = XDocument.Parse(result);
ShowGuildies(ArmouryXML);
}
else
{
MessageBox.Show("Something is complaining about security but not sure what!");
}
}
笔记:
- C# 4.0
- 军械库是一个 XML 文件 - 但我相信如果请求不是来自支持 XML 转换的浏览器,它会恢复为 html。但我不认为我能走到这一步。
- 军械库上有一个跨域策略文件 - 这可能是错误的原因(不确定!
- 我已上传到生产服务器
- 我正在使用 IIS 网站在本地对其进行测试
- 我要疯了!
- 网站已经建议可以通过创建 WebProxy 来克服这个问题 - 但我没有第一个线索如何做到这一点。
如果有人能接受这一挑战并向我们展示这是可能的,那就太好了。我更喜欢先使用非代理解决方案,然后尝试使用代理。
错误详情:
e.Error = {System.Security.SecurityException ---> System.Security.SecurityException:安全错误。在 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 在 System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5。
有没有聪明的编码大师可以在睡梦中解决这个问题?
谢谢,如果你能帮忙。