如何使用iOS Objective-C中的AFNetworking库下载.json文件?
我是iOS应用程序开发新手。我一直在从Amazon下载.json文件。我在stackoverflow和更多(,)中引用了以下链接,但它们对我没有帮助 我有一个扩展名为.json的文件,其中包含json结构化数据。在调用URL时,我需要文件的内容。我使用了NSURLConnection,它工作了。但我想让它工作使用网络 NSURL连接工作代码:如何使用iOS Objective-C中的AFNetworking库下载.json文件?,ios,objective-c,json,web-services,afnetworking,Ios,Objective C,Json,Web Services,Afnetworking,我是iOS应用程序开发新手。我一直在从Amazon下载.json文件。我在stackoverflow和更多(,)中引用了以下链接,但它们对我没有帮助 我有一个扩展名为.json的文件,其中包含json结构化数据。在调用URL时,我需要文件的内容。我使用了NSURLConnection,它工作了。但我想让它工作使用网络 NSURL连接工作代码: NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"h
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);
}
AFN网络代码不工作:
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服务。但由于这是一个文件,我没有得到什么错误是。。。请帮忙。。。我已经尝试了很多次,但没有任何效果替换这一行
[manager.requestSerializer setValue:@“application/x-www-form-urlencoded;charset=UTF-8”forHTTPHeaderField:@“Content Type”]代码>
由此
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
仍然不工作,然后从这个特定Web服务的代码中删除下面的行
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
我找到了答案
我尝试了下面的代码,它成功了
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://someamazon-url/folder/file.json"]];
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:nil];
我刚刚执行了这三行,它成功了。。但我不知道这是一种正确的方法。但在这种情况下,因为它只是一个文件,我认为它是好的
如果您认为这不是正确的方法,请发表评论。在AFHTTPRequestOperationManager
的GET:
方法中,您是否发现错误?这个街区叫什么<代码>失败
,那么错误
参数是怎么说的?很抱歉没有发布错误消息:失败:^(AFHTTPRequestOperation*operation,NSError*error){NSLog(@“error:%@”,error);}]; 日志中的错误为:-NSUnderlyingError=0x16d8daf0“请求失败:不可接受的内容类型:应用程序/xml”您的错误取决于json服务器的工作方式。有时您的服务器由于某些原因而不接受您的请求。你能出示你的链接吗?我确信我能够用AFNetworking
和您的链接编写代码