2014-06-14 3 views
0

내 iPhone 앱에서 MediaWiki API을 사용하고 있습니다.여러 제목이있는 MediaWiki API URL에서 NSURL을 열 수 없습니다.

나는 ("거미"와 "고양이"에 대한 위키 피 디아 기사의 모든 이미지의 JSON 형식)이 링크를로드하려고 :

http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider|Cat

그 일에 대한 나의 코드는 이것이다 :

NSString *urlPath = @"http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider|Cat"; 
NSURL *URL = [NSURL URLWithString:urlPath]; // nil 

내 컴퓨터에서 링크로 이동할 수는 있지만이 코드는로드되지 않습니다.

http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider

NSString *urlPath = @"http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider"; 
NSURL *URL = [NSURL URLWithString:urlPath]; // works just fine 

이이 NSString| 문자에 문제가 : 그것은 ("스파이더"에 대한 그냥 이미지)이 같은 다른 링크,하지만 작동합니까? 왜 이것이 두 번째 링크에는 작동하지만 첫 번째 링크에는 작동하지 않는지 나는 이해할 수 없다.

답변

0

내가 문제가 | 나에게 아무 의미가없는 NSURL로 추가되는 수직 파이프 기호 것을 깨달았다하지만,이 솔루션은 %7C로 교체하는 것입니다의의 "URL 인코딩 된 값 | 문자, "나는 this answer에서 배운

그래서,이 작품 :

NSString *urlPath = @"http://en.wikipedia.org/w/api.php?action=query&prop=images&format=json&imlimit=200&titles=Spider%7CCat"; 
NSURL *URL = [NSURL URLWithString:urlPath]; // nil