C# 从http url加载xml
我正在web应用程序中使用xml.net 当我尝试通过http internet url加载xml时,请使用: xmlDoc.Load(“http://....") 我收到一个错误:“连接的主机无法响应” 有人知道这个问题的解决办法吗C# 从http url加载xml,c#,C#,我正在web应用程序中使用xml.net 当我尝试通过http internet url加载xml时,请使用: xmlDoc.Load(“http://....") 我收到一个错误:“连接的主机无法响应” 有人知道这个问题的解决办法吗 感谢连接的主机未能响应是因为您的uri不正确,或者您不允许访问它,或者它没有响应您,或者它已关闭。http并不真正关心它传输什么。它的意思可能正是它所说的:负责指定URL处请求的web服务器没有发送回响应。web服务器出了问题,如果是这样,你就不能对云中的某个人的
感谢连接的主机未能响应是因为您的uri不正确,或者您不允许访问它,或者它没有响应您,或者它已关闭。http并不真正关心它传输什么。它的意思可能正是它所说的:负责指定URL处请求的web服务器没有发送回响应。web服务器出了问题,如果是这样,你就不能对云中的某个人的web服务器运行不正常做任何事情 但是,您可以接受这样一个事实,即并非每个URL都能工作,您必须捕获XmlDocument或XDocument引发的异常。有理由预计这种情况可能会发生。因此,您需要防御性地编程,并通过包含适当的异常处理来处理此类情况
编辑:这样你就可以从.NET框架之外访问它了,是吗?也许可以尝试使用HTTP调试器(如Fiddler),将XML文档对象发出的请求与浏览器发出的请求进行比较。哪些标题字段不同?浏览器是否包含XML文档对象不包含的标题?或者两者之间是否存在可能导致.NET请求不响应的不同头值?如图所示。如果可以通过web浏览器而不是通过load方法访问页面,则该方法听起来好像没有向web服务器发出所需页面的正确HTTP请求 您可以尝试使用带有标准GET方法的HTTPWebRequest为网页发出正确的HTTP请求。然后可以将响应作为流传递给XMLDocument.Load方法,然后它应该可以正常加载
尝试向url发出WebRequest,并将其UserAgent属性设置为类似“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.2;SV1;.NET CLR 1.1.4322)”。如果有效,请加载xmldoc中的文本。我尝试使用.Net HttpWebRequest加载xml,并尝试设置userAgent属性。 但它仍然给我错误信息: “无法连接到远程服务器” 但是,可以通过浏览器访问xml 代码如下:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.UserAgent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)";
string result = string.Empty;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
// Read the whole contents and return as a string
result = reader.ReadToEnd();
}
谢谢。您的浏览器是否正在使用代理 只需尝试telnet,看看您是否能够通过浏览器以外的应用程序连接到web服务器 因此,如果您使用的url类似,请在命令提示符中尝试以下操作:
telnet xmlserver.com 80
您的请求和浏览器请求之间的巨大差异可以通过以下行来弥补:
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
是的,首先尝试将URL放入IE中。如果它应该返回XML,那么它应该在浏览器中显示XML。