2014-02-11 36 views
1

我從下面的會話從Facebook獲取帖子,並返回'錯誤的網址'錯誤。當我使用相同的URL並在瀏覽器中打開它時,我會返回適當的JSON,內容包含完整的帖子。我的會議有什麼問題?謝謝。NSURLSession錯誤:錯誤的URL,在瀏覽器中工作

- (void)loadFacebookPosts 
{ 
    NSURLSession *session = [NSURLSession sharedSession]; 
    [[session dataTaskWithURL:[NSURL URLWithString:@"https://graph.facebook.com/profileid/feed?fields=message,description,caption,name&access_token=appid|secret"] 
      completionHandler:^(NSData *data, 
           NSURLResponse *response, 
           NSError *error) { 

       NSLog(@"error: %@", error); 
       NSLog(@"data: %@", data); 
       NSLog(@"response: %@", response); 

      }] resume]; 
} 

控制檯:

2014-02-11 21:36:10.507 fbFetch [34365:310b] error: Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0xc7844f0 {NSUnderlyingError=0xc634c90 "bad URL", NSLocalizedDescription=bad URL} 
2014-02-11 21:36:10.509 fbFetch [34365:310b] data: <> 
2014-02-11 21:36:10.510 fbFetch [34365:310b] response: (null) 

回答

3

你嘗試:

NSString *strURL = [@"https://graph.facebook.com/profileid/feed?fields=message,description,caption,name&access_token=appid|secret" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

然後使用strURL創建NSURL

+0

不,profileID,令牌和機密都只是數字。但會嘗試儘快.. –

+0

賓果!不明白區別,但是就是這樣。感謝百萬:) –

+0

'-stringByAddingPercentEscapesUsingEncoding'方法將不兼容的字符轉義爲形成常規url。不兼容的字符被百分比轉義。 – graver

2

您的網址包含非法字符 - '|'所以你需要在使用百分比編碼字符串之前創建它的URL:

NSString *URLString = @"https://graph.facebook.com/profileid/feed?fields=message,description,caption,name&access_token=appid|secret"; 
NSString *escapedURLString = [URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSURLSession *session = [NSURLSession sharedSession]; 
    [[session dataTaskWithURL:[NSURL URLWithString: escapedURLString] 
      completionHandler:^(NSData *data, 
           NSURLResponse *response, 
           NSError *error) { 

       NSLog(@"error: %@", error); 
       NSLog(@"data: %@", data); 
       NSLog(@"response: %@", response); 

      }] resume]; 
+0

就是這樣,謝謝。 –

相關問題