Я пытаюсь вызвать веб-сервис поиска drupal, но когда я его вызываю, он говорит, что запрос имеет значение NULL.NSString считается null при преобразовании в URL-адрес
Я поместил некоторый журнал в свой код и увидел, что NSString хорош, но когда я определяю свой NSURL, NSString рассматривается как null ... Может кто-нибудь объяснить мне, в чем проблема, пожалуйста?
Ниже мой код:
- (void)FindProductsByKeyword:(NSString *)keyword :(void(^)(NSArray *produits))success
{
__block NSArray *produits = [[NSArray alloc]init];
NSString *fullUrl = [NSString stringWithFormat:@"%@%@?filter[title]=\%%%@\%%&filter_op[title]=LIKE", WEBSERVICES_URL, PRODUCT_DISPLAY_URL, keyword];
NSLog(@"Appel de : %@", fullUrl);
NSURL *URLFormatted = [NSURL URLWithString:fullUrl];
NSLog(@"Appel de : %@", URLFormatted);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:fullUrl]];
NSLog(@"Appel de : %@", request);
[request setHTTPShouldHandleCookies:NO];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue currentQueue] completionHandler:
^(NSURLResponse * response, NSData * data, NSError * error)
{
NSHTTPURLResponse * httpResponse = (NSHTTPURLResponse*)response;
NSLog(@"status code : %d", httpResponse.statusCode);
if(httpResponse.statusCode == 200) {
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
produits = [[WebservicesService getInstance]ExtractListProduct:jsonData];
NSLog(@"Il y a %d résultats pour la recherche", produits.count);
}
success(produits);
}];
}
Это то, что мой журнал шоу:
2014-01-03 17:03:51.852 mcommerce_ipad[8649:a0b] Appel de : http://domain-name.com/rest/product-display.json?filter[title]=%test%&filter_op[title]=LIKE
2014-01-03 17:03:51.852 mcommerce_ipad[8649:a0b] Appel de : (null)
2014-01-03 17:03:51.853 mcommerce_ipad[8649:a0b] Appel de : <NSMutableURLRequest: 0x8a3c9c0> { URL: (null) }
2014-01-03 17:03:51.895 mcommerce_ipad[8649:a0b] status code : 0
Наконец, что поджигатель возвращение, когда я пытаюсь непосредственно мой NSString.
200 OK
17 Object { vid="17", uid="0", title="Ethylotest chimique à usage unique", more...}
139 Object { vid="139", uid="16", title="Produit de test", more...}
142 Object { vid="142", uid="16", title="Test surface", more...}
Это показывает, что запрос является правильным и должен вернуть то, что проблема исходит от конвертации из NSString в NSURL, но я не могу найти его ... Так что пожалуйста мои спасители!
Попробуйте избежать специальных символов с: [NSURL URLWithString: [fullUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; –
Спасибо, что делают работу отлично! Я никогда не писал этот тип запроса раньше и теперь благодаря вам, я смогу сделать это правильно. – neobagram
Возможный дубликат [+ \ [NSURL URLWithString: \] возвращает нуль] (http://stackoverflow.com/questions/20219394/nsurl-urlwithstring-returning-nil) –