C# 从http url加载xml

C# 从http url加载xml,c#,C#,我正在web应用程序中使用xml.net 当我尝试通过http internet url加载xml时,请使用: xmlDoc.Load(“http://....") 我收到一个错误:“连接的主机无法响应” 有人知道这个问题的解决办法吗 感谢连接的主机未能响应是因为您的uri不正确,或者您不允许访问它,或者它没有响应您,或者它已关闭。http并不真正关心它传输什么。它的意思可能正是它所说的:负责指定URL处请求的web服务器没有发送回响应。web服务器出了问题,如果是这样,你就不能对云中的某个人的

我正在web应用程序中使用xml.net 当我尝试通过http internet url加载xml时,请使用: xmlDoc.Load(“http://....") 我收到一个错误:“连接的主机无法响应”

有人知道这个问题的解决办法吗


感谢

连接的主机未能响应是因为您的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。