我正在使用下面的代码,但它并不适用于我,并且总是得到空响应,但是当该URL进入浏览器时,它将下载一个包含以下文本的f.txt文件
窗口.google.ac.h([“Y”、[“年轻暴徒”、0、“youtube”、0、“青年troye sivan”、0、"young dolph“、0、"yo gotti”、0、“yg”、0、“瑜伽”、0、“你应该在这里”、0、"yandere模拟器“、0、”年轻暴徒最好的朋友“、0]、{”k“、"l":"1”、“q”:“Fu65vJmwPDpRvrCvJ_hO3MqI15U”})
@property(strong, nonatomic) NSMutableArray *ParsingArray // Put that in .h file or after @interface in your .m file
-(void)autocompleteSegesstions : (NSString *)searchWish{
//searchWish is the text from your search bar (self.searchBar.text)
NSString *jsonString = [NSString stringWithFormat:@"http://suggestqueries.google.com/complete/search?client=youtube&ds=yt&alt=json&q=%@", searchWish];
NSString *URLString = [jsonString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // Encoding to identify where, for example, there are spaces in your query.
NSLog(@"%@", URLString);
NSData *allVideosData = [[NSData alloc]initWithContentsOfURL:[[NSURL alloc]initWithString:URLString]];
NSString *str = [[NSString alloc]initWithData:allVideosData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str); //Now you have NSString contain JSON.
NSString *json = nil;
NSScanner *scanner = [NSScanner scannerWithString:str];
[scanner scanUpToString:@"[[" intoString:NULL]; // Scan to where the JSON begins
[scanner scanUpToString:@"]]" intoString:&json];
//The idea is to identify where the "real" JSON begins and ends.
json = [NSString stringWithFormat:@"%@%@", json, @"]]"];
NSLog(@"json = %@", json);
NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:[json dataUsingEncoding:NSUTF8StringEncoding] //Push all the JSON autocomplete detail in to jsonObject array.
options:0 error:NULL];
self.ParsingArray = [[NSMutableArray alloc]init]; //array that contains the objects.
for (int i=0; i != [jsonObject count]; i++) {
for (int j=0; j != 1; j++) {
NSLog(@"%@", [[jsonObject objectAtIndex:i] objectAtIndex:j]);
[self.ParsingArray addObject:[[jsonObject objectAtIndex:i] objectAtIndex:j]];
//Parse the JSON here...
}
}} 发布于 2016-05-05 07:03:45
请解决这个问题,因为这里有两件事需要知道:
在iOS 9中,默认情况下不支持http://。您必须安全地(与https://). )通信。如果有必要,可以在Info.plist中关闭此功能。NSFileManager URL必须是磁盘上文件的路径-也就是说,它们必须是文件URL。你的不是;它是一个http:// URL。如果您的目标是下载一个文件,然后在某个地方复制它,请使用NSURLSession的下载任务。
https://stackoverflow.com/questions/37031233
复制相似问题