【问题标题】:asp.net core can't get xml data from urlasp.net core 无法从 url 获取 xml 数据
【发布时间】:2017-09-26 07:13:29
【问题描述】:

我正在使用 Amazon API 生成对 ItemLookup 的请求。签署请求后,我得到了一个网址:

http://webservices.amazon.com/onca/xml?AWSAccessKeyId=[AccessKey]&AssociateTag=[AssociateTag]&ItemId=B06XBCY6DW&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes%2COffers%2CReviews&Service=AWSECommerceService&Timestamp=2050-02-13T12:00:00Z&Version=2016-02-12&Signature=[Signature]

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

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

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

var itemXml = XElement.Load(url);

如何在 c# 中获取该 xml??

【问题讨论】:

标签: c# asp.net xml amazon-web-services asp.net-core


【解决方案1】:

这与 .net 核心无关。

XElement.Load 接受一个字符串 - 如果您查看智能感知状态:

从文件加载 XElement。

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

您需要将 URL 内容读入 Stream。

试试下面的

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

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

var itemXml = XElement.Load(stream);

注意我使用了.Result - 我会推荐使用await (async/await) 模式

【讨论】:

  • 谢谢你救了我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 2020-07-27
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多