【问题标题】:converting mashape api response to c# class将 mashape api 响应转换为 c# 类
【发布时间】:2015-03-09 07:23:12
【问题描述】:

我正在使用 mashape api 来获取速度后跟踪信息:-

https://www.mashape.com/blaazetech/indian-post

因为这是在 .NET c# 中,所以下面的代码没有被编译:-

Task<HttpResponse<MyClass>> response = Unirest.get("https://indianpost.p.mashape.com/index.php?itemno=EF990403084IN")
.header("X-Mashape-Key", mykey)
.header("Accept", "application/json")
.asJson();

编译错误是“无法从用法中推断方法 'unirest_net.request.HttpRequest.asJson()' 的类型参数。尝试显式指定类型参数。”

我不确定如何使用这个 api。 “MyClass”有问题吗?

【问题讨论】:

  • 顺便说一句,Mashape 提供的语法是错误的。您展示的代码示例是一个异步调用,它缺少类类型。将最后一部分替换为: .asJsonAsync(); - 请参阅此处了解更多信息(异步部分)unirest.io/net.html - 但作为起点,您可以在下面尝试我的同步 GET 代码以保持简单。总帐。

标签: c# .net mashape


【解决方案1】:

RSDC - 好的,事实证明您的 Indian-Post API 端点无论如何都不起作用。在 Mashape 上测试它们并返回错误。

>>> 我让它为 metaCritic GET API 工作

https://www.mashape.com/byroredux/metacritic(游戏列表API,倒数第二个)

回复:我的班级

1) 在 mashape.com 站点的 API 文档页面中,在右侧找到 200/JSON 响应。

2) 复制json数据

3) 转到http://json2csharp.com/ 并粘贴代码

4) 点击 Generate 按钮获取 c# 类代码。复制课程代码。

5) 回到 VS,转到 Models 文件夹并创建名为 MyClass.cs 的类。

6) 粘贴您的代码:

public class MyClass
{
    public class Result
    {
        public string name { get; set; }
        public string score { get; set; }
        public string url { get; set; }
        public string rlsdate { get; set; }
        public string rating { get; set; }
        public string summary { get; set; }
        public string platform { get; set; }
    }

    public class RootObject
    {
        public List<Result> results { get; set; }
    }
}

7) 试试这个:

        HttpResponse<MyClass.RootObject> response = Unirest.get("https://byroredux-metacritic.p.mashape.com/game-list/ps4/coming-soon")
        .header("X-Mashape-Key", "KxdVFN6Vlymshd5ezOQwBvS2Svjtp1bq5YOjsnFOkgTOwqwM6y")
        .header("Accept", "application/json")
        .asJson<MyClass.RootObject>();

如果您运行调试器,您可以看到 response > Body > results 现在包含 25 项数据。

【讨论】:

  • 不应该MyClassRootObject 实际上是同一个类吗?
  • @ArturoTorresSánchez 嗨,我认为您的想法是正确的。我使用您的想法 + 不同的 API 更改了我的答案并且它有效。至少对于 GET。我仍然遇到 POST 问题,但我会为此创建一个新问题。谢谢。
  • 感谢您的帮助,将尝试告诉您进展如何。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2017-12-01
  • 2018-07-15
  • 2016-10-19
  • 2022-11-30
  • 1970-01-01
相关资源
最近更新 更多