首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xCode - Mashape Unirest

xCode - Mashape Unirest
EN

Stack Overflow用户
提问于 2014-06-05 19:43:12
回答 1查看 932关注 0票数 0

我需要你的帮助。我在MaShape上为Metascore找到了一个API,但是我无法让它工作。我使用Cocoapod下载Unirest框架并复制粘贴了Mashape的代码片段

代码语言:javascript
复制
NSDictionary* headers = @{@"X-Mashape-Authorization": @"wZrjWIiAsqdSLGIh3DQzrKoZ5Y3wlo6E"};
NSDictionary* parameters = @{@"title": @"The Elder Scrolls V: Skyrim", @"platform": 1, };

UNIHttpJsonResponse* response = [[UNIRest post:^(UNIBodyRequest* request) {
  [request setUrl:@"https://byroredux-metacritic.p.mashape.com/find/game"];

  [request setHeaders:headers];
  [request setParameters:parameters];
}] asJson];

它给了我一堆错误,我把它修正成这样:

代码语言:javascript
复制
NSDictionary* headers = @{@"X-Mashape-Authorization": @"wZrjWIiAsqdSLGIh3DQzrKoZ5Y3wlo6E"};
    NSDictionary* parameters = @{@"title": @"The Elder Scrolls V: Skyrim", @"platform": @"1", };

    UNIHTTPJsonResponse* response = [[UNIRest post:^(UNISimpleRequest* request) {
        [request setUrl:@"https://byroredux-metacritic.p.mashape.com/find/game"];

        [request setHeaders:headers];
        [request setParameters:parameters];
    }] asJson];

但是,每当我去调试代码并查看响应内部时,它都是空的,就好像api没有工作一样。你们能告诉我我做错了什么吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 22:55:58

您的(固定的)代码片段看起来很好(第一个代码片段确实是错误的),您应该能够像这样打印结果:

代码语言:javascript
复制
UNIHTTPJsonResponse *response = [[UNIRest post:^(UNISimpleRequest *request) {
    [request setUrl:@"https://byroredux-metacritic.p.mashape.com/find/game"];

    [request setHeaders:headers];
    [request setParameters:parameters];
}] asJson];

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:response.rawBody
                                                         options:kNilOptions
                                                           error:nil];
NSLog(@"Response status: %ld\n%@", (long) response.code, json);

但是,与其执行同步调用,我还建议您切换到异步方式,并检查进程和JSON解析过程中的任何错误:

代码语言:javascript
复制
[[UNIRest post:^(UNISimpleRequest *request) {
    [request setUrl:@"https://byroredux-metacritic.p.mashape.com/find/game"];
    [request setHeaders:headers];
    [request setParameters:parameters];
}] asJsonAsync:^(UNIHTTPJsonResponse* response, NSError *error) {
    if (error) {
        // Do something with the error
    }

    NSError *jsonError;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:response.rawBody
                                                         options:kNilOptions
                                                           error:&jsonError];
    if (jsonError) {
        // Do something with the error
    }

    NSLog(@"Async response status: %ld\n%@", (long) response.code, json);

    // Unirest also provides you this which prevents you from doing the parsing
    NSLog(@"%@", response.body.JSONObject);
}];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24068902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档