【发布时间】:2016-06-02 08:46:14
【问题描述】:
我是 iOS 应用开发的新手。我被困在从亚马逊下载 .json 文件中。我在 stackoverflow 中引用了以下链接以及更多链接(Using AFNetworking to Download File in iOS、How to download the large amount of data using AFNetworking Library to show the better performance in ios?),但它们对我没有帮助。
我有一个扩展名为 .json 的文件,其中包含 json 结构化数据。在调用 URL 时,我想要文件的内容。我使用了 NSURLConnection 并且它有效。但我想使用 AFNetworking 使其工作。
NSURLConnection 工作代码:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://someamazon-url/folder/file.json"]]; NSURLConnection *connection;
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSLog(@"response received");
self.responseData = [[NSMutableData alloc] init];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[self.responseData appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSDictionary *results =[NSJSONSerialization JSONObjectWithData:self.responseData options:kNilOptions error:nil];
NSLog(@"%@", results);
}
AFNetwork 代码不起作用:
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:url]];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; ///@"application/json"
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
我知道上面的代码有一些错误。请指导我哪里出错了?上面的代码适用于所有其他 web 服务。但由于这是一个文件,我不明白错误是什么......请帮助......我已经尝试了很多,但没有任何工作
【问题讨论】:
-
在来自
AFHTTPRequestOperationManager的GET:方法中,是否出现错误?块叫什么?failure,那么error参数是什么意思? -
抱歉没有发布错误信息:失败:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }];日志中的错误是:- NSUnderlyingError=0x16d8daf0 “请求失败:不可接受的内容类型:应用程序/xml”
-
您的错误取决于您的 json-server 的工作方式。有时您的服务器由于某些原因不接受您的请求。你能显示你的链接吗?我确定我可以通过您的链接使用
AFNetworking编写代码
标签: ios objective-c json web-services afnetworking