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

2015-06-17 19:14:46 +08:00
 halko
工程里面的代码:
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")

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

先谢谢了.
5086 次点击
所在节点    iDev
9 条回复
halko
2015-06-17 19:16:02 +08:00
上面贴的代码,可以直接复制到Xcode里面运行的, 求帮助~ 谢谢!
joshua7v
2015-06-17 23:25:53 +08:00
我看了一下,请求没问题,数据也返回了,应该是数据返回的格式问题,不能解析成json
joshua7v
2015-06-17 23:41:19 +08:00
哦,压根就没返回响应体。。。当然是null了
在header里,用operation.response.allHeaderFields解析吧
robinWu
2015-06-17 23:57:08 +08:00
把收到的数据打印出来看下返回的数据格式怎样的。
或者跟踪下AFNetworking的步骤。
zg_gz
2015-06-18 07:59:42 +08:00
AFJSONResponseSerializer
halko
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
2015-06-18 11:44:39 +08:00
@zg_gz 谢谢回复.
你的意思是这样吗? :
// 设置返回格式
manager.responseSerializer = [AFJSONResponseSerializer serializer];
zg_gz
2015-06-18 12:59:15 +08:00
@halko
"Content-Length" = 0;
请求没有返回数据啊
biggun
2015-06-25 02:00:34 +08:00
@halko 没用返回任何content啊。抓来后端问一问。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/199344

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX