Reputation: 45
I am using below code but it is not working for me and always getting null response but when that URL pest into browser it will downloaded one f.txt file that contain below text
window.google.ac.h(["Y",[["young thug",0],["youtube",0],["youth troye sivan",0],["young dolph",0],["yo gotti",0],["yg",0],["yoga",0],["you should be here cole swindell",0],["yandere simulator",0],["young thug best friend",0]],{"k":1,"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...
}
}}
Upvotes: 1
Views: 161
Reputation: 45
Resolve this for There are two things to know here:
In iOS 9, by default, http:// is not supported. You must communicate securely (with https://). You can turn off this feature in your Info.plist if you have to. NSFileManager URLs must be paths to files on disk — that is, they must be file URLs. Yours is not; it's an http:// URL. If your goal is to download a file and then copy it somewhere, use NSURLSession's download task.
Upvotes: 1