V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
halko
V2EX  ›  iDev

使用 AFNetworking 2.0 发起 post 请求,返回为 null.

  •  
  •   halko · 2015-06-17 19:14:46 +08:00 · 5203 次点击
    这是一个创建于 3432 天前的主题,其中的信息可能已经有所发展或是发生改变。
    工程里面的代码:
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"cacheSupporting": @0,
    @"n":@"Session",
    @"q":@{@"deviceToken":@"d961854db98025324ce26525c9fa98a911dae80ac031b8782068ec8f1822e7c5",
    @"resolution":@"640*1136",
    @"screenSize":@"4.0",
    @"deviceType":@1,
    @"info":@"",
    @"lang":@2502,
    @"version":@"1.2",
    @"model":@"iPod touch"},
    @"s":@""
    };

    [manager POST:http://www.citytong.me/api parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"---Error: %@", error);
    NSLog ( @"operation: %@" , operation.responseString );
    }];

    返回:(null)

    我在后端同事给我的测试接口的页面里测试, API本身是没问题的.

    然后我在postman里测试: 也是没有问题的.
    (只是在传的请求参数前包了一层@"json")

    是我在工程里的请求参数格式出问题了吗?

    先谢谢了.
    9 条回复    2015-06-25 02:00:34 +08:00
    halko
        1
    halko  
    OP
       2015-06-17 19:16:02 +08:00
    上面贴的代码,可以直接复制到Xcode里面运行的, 求帮助~ 谢谢!
    joshua7v
        2
    joshua7v  
       2015-06-17 23:25:53 +08:00
    我看了一下,请求没问题,数据也返回了,应该是数据返回的格式问题,不能解析成json
    joshua7v
        3
    joshua7v  
       2015-06-17 23:41:19 +08:00
    哦,压根就没返回响应体。。。当然是null了
    在header里,用operation.response.allHeaderFields解析吧
    robinWu
        4
    robinWu  
       2015-06-17 23:57:08 +08:00
    把收到的数据打印出来看下返回的数据格式怎样的。
    或者跟踪下AFNetworking的步骤。
    zg_gz
        5
    zg_gz  
       2015-06-18 07:59:42 +08:00
    AFJSONResponseSerializer
    halko
        6
    halko  
    OP
       2015-06-18 10:06:41 +08:00
    @joshua7v 谢谢你的回复.
    可是请问你说的header是在哪里???

    我在请求的成功回调里做了allHeaderFields的输出:
    NSLog(@"---allHeader:%@", operation.response.allHeaderFields);

    输出的内容看不懂:
    {
    "Cache-Control" = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
    Connection = close;
    "Content-Length" = 0;
    "Content-Type" = "text/html; charset=utf-8";
    Date = "Thu, 18 Jun 2015 01:54:57 GMT";
    Expires = "Thu, 19 Nov 1981 08:52:00 GMT";
    Pragma = "no-cache";
    Server = "Apache/2.2.15 (CentOS)";
    "Set-Cookie" = "PHPSESSID=r8v3507eflechtskjkgtavf923; path=/";
    "X-Powered-By" = "PHP/5.5.25";
    }
    halko
        7
    halko  
    OP
       2015-06-18 11:44:39 +08:00
    @zg_gz 谢谢回复.
    你的意思是这样吗? :
    // 设置返回格式
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    zg_gz
        8
    zg_gz  
       2015-06-18 12:59:15 +08:00
    @halko
    "Content-Length" = 0;
    请求没有返回数据啊
    biggun
        9
    biggun  
       2015-06-25 02:00:34 +08:00
    @halko 没用返回任何content啊。抓来后端问一问。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2791 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:23 · PVG 21:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.