【问题标题】:Web request using Sears API使用 Sears API 的 Web 请求
【发布时间】:2012-04-11 11:54:18
【问题描述】:

我是新来的,所以请善待。

我需要向 Sears 提出一个简单的请求,以检索有关产品的详细信息。 我不太习惯 json/xml 和服务器请求。

因为我已经注册到 Sears,所以我有 API 密钥。

我的代码是这样的:

    protected void Page_Load(object sender, EventArgs e)
    {

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.developer.sears.com/v1/productdetails?&store=Sears&contentType=xml");

        request.KeepAlive = false;
        request.Method = "GET";
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream());
        string respond = sr.ToString();
        Label1.Text = respond;
    }

我收到 401 - 未经授权的错误

问题是:

  1. 我在哪里以及如何使用 API 密钥?
  2. 我想我会得到一个未格式化的 xml,我该如何正确显示它?

谢谢!

【问题讨论】:

  • API 必须记录如何使用 API 密钥。如果您在 Internet Explorer 中显示,则不需要格式化。否则可能不是。如果必须,您可以使用tidy 或类似的库对其进行格式化。

标签: c# xml json api api-key


【解决方案1】:

根据他们的 API 文档,您需要将 API 密钥作为参数之一包含在查询请求中。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.developer.sears.com/v1/productdetails?apikey=<apikey>&store=Sears&partNumber=05408391000P");

http://developer.sears.com/api/Product%2520Details%2520API/Hard%2520line%2520products/doc

然后将最后两行代码更改为:

string respond = sr.ReadToEnd();
Label1.Text = respond; 

【讨论】:

  • 感谢您的快速答复。我这样做了,我可以从服务器获取请求。现在,我的标签显示“System.IO.StreamReader”而不是产品信息。如何从请求中获取 xml/json?我应该更改请求吗?
  • 现在我的标签得到一个类似“05408391000P 40821SDBB $69.95 each ]]> 44411656 10153 12605 -1 1 1 0 0 41442744 false 0 0 69.95 69.95 false false 05408391000P false我认为是 Xml ??但未正确显示或解析。你能帮我正确展示它吗?如果我将 contentType=xml 更改为 contentType=json 如何解析它以正确显示它?
  • 您熟悉将 XML 或 JSON 反序列化为对象吗?
  • 我已经阅读了一些教程,但我不知道我的代码从哪里开始
  • 这是一个示例,尽管这可能比您准备的更高级:stackoverflow.com/questions/3142495/…
猜你喜欢
  • 1970-01-01
  • 2021-09-04
  • 2014-06-11
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 2013-08-08
相关资源
最近更新 更多