C# asp.net核心可以';无法从url获取xml数据

C# asp.net核心可以';无法从url获取xml数据,c#,asp.net,xml,amazon-web-services,asp.net-core,C#,Asp.net,Xml,Amazon Web Services,Asp.net Core,我正在使用AmazonAPI生成ItemLookup请求。签署请求后,我得到一个url: 我在浏览器中使用它,我可以看到带有项目数据的漂亮xml,但当我试图用c#获取数据时,我得到了错误 Uri参数必须是文件系统相对路径或绝对路径 我用来获取数据的方法是: var itemXml = XElement.Load(url); 如何在c#?中获取xml这与.net核心无关 XElement.Load接受一个字符串-如果您查看intellisense状态: 从文件加载XElement 这不是你想要

我正在使用AmazonAPI生成ItemLookup请求。签署请求后,我得到一个url:

我在浏览器中使用它,我可以看到带有项目数据的漂亮xml,但当我试图用c#获取数据时,我得到了错误

Uri参数必须是文件系统相对路径或绝对路径

我用来获取数据的方法是:

var itemXml = XElement.Load(url);

如何在c#?中获取xml这与.net核心无关

XElement.Load
接受一个字符串-如果您查看intellisense状态:

从文件加载XElement

这不是你想要的。它试图从文件系统解析URI

您需要将URL内容读入流中

试试下面的方法

var httpClient = new HttpClient();
var result = httpClient.GetAsync(url).Result;

var stream = result.Content.ReadAsStreamAsync().Result;

var itemXml = XElement.Load(stream);

注意:我使用了
.Result
——我建议改用
await
(异步/等待)模式

这与.net核心无关

XElement.Load
接受一个字符串-如果您查看intellisense状态:

从文件加载XElement

这不是你想要的。它试图从文件系统解析URI

您需要将URL内容读入流中

试试下面的方法

var httpClient = new HttpClient();
var result = httpClient.GetAsync(url).Result;

var stream = result.Content.ReadAsStreamAsync().Result;

var itemXml = XElement.Load(stream);

注意我使用了
.Result
-我建议改为使用
await
(异步/等待)模式

我猜url是字符串?如果是这样,文档建议它应该是一个文件,我解释为它应该是你自己电脑上的本地文件。虽然不确定,还有一个带有示例@GertKommer的链接是的,我的url是字符串,但你给出的示例在asp.net Core中不起作用。我想url是字符串吧?如果是这样,文档建议它应该是一个文件,我解释为它应该是你自己电脑上的本地文件。虽然不确定,还有一个带有示例@GertKommer的链接是我的url是字符串,但你给出的示例在asp.net Core中不起作用谢谢你救了我:)谢谢你救了我:)