gpt4 book ai didi

ios - AFNetworking 客户端子类不解析响应

转载 作者:行者123 更新时间:2023-11-29 11:02:15 24 4
gpt4 key购买 nike

我试图通过继承 AFHTTPClient 并设置基本路径来实现 AFNetworking 客户端

#define WineAPIBaseURLString @"http://localhost:3000/"
@implementation WineAPIClient

+(id)sharedInstance{
static WineAPIClient *__sharedInstance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
__sharedInstance = [[WineAPIClient alloc]initWithBaseURL:[NSURL URLWithString:WineAPIBaseURLString]];
});
return __sharedInstance;
}

- (id)initWithBaseURL:(NSURL *)url
{
self = [super initWithBaseURL:url];
if(self){
[self setParameterEncoding:AFJSONParameterEncoding];
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
}

return self;
}

@end

现在在我的 View Controller 中调用客户端给我带来了奇怪的结果。例如下面的代码:

[[WineAPIClient sharedInstance] getPath:@"wines"
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@", responseObject);

}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error fetching wines!");
NSLog(@"%@",error);
}];

它正在登录控制台一堆数字:

2013-03-11 16:25:36.411 AFNetworking4[1934:1260b] GET 'http://localhost:3000/wines'
2013-03-11 16:25:36.430 AFNetworking4[1934:f803] <5b0a2020 7b0a2020 2020225f 5f76223a 20302c0a 20202020 225f6964 223a2022 35313131 35656235 37356265 35383766 3034303...
2013-03-11 16:25:36.429 AFNetworking4[1934:13003] 200 'http://localhost:3000/wines' [0.0173 s]

如何让客户端正确解析 JSON?客户端实现有没有错误?

需要注意的是,在不使用自定义客户端时,完全相同的 URI 可以正常工作。

即:

NSURL *url = [NSURL URLWithString:@"http://localhost:3000/wines"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"%@",JSON);
} failure:nil];
[operation start];

我正在使用 AFNetworking 的 0.10.1 分支(我必须支持 4.x 设备,所以我无法升级...)。

有什么办法可以纠正吗?

非常感谢。

最佳答案

AFJSONParamterEncoding 仅影响您随请求传递的参数。看起来您正在接收编码为 NSData 的数据。您可以尝试使用 initWithData 创建一个 NSString,然后记录它。您可能还想确保您的客户端返回实际的 JSON。在 ruby​​ 中,这可能需要一个 to_json 方法。

关于ios - AFNetworking 客户端子类不解析响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com