Неверный URL при запросе через NSURL - PullRequest
8 голосов
/ 09 июня 2011

Я пытаюсь запросить URL-адрес такого типа в iPhone 4.0 SDK (маркер доступа немного изменен, потому что вам не нужно его видеть):

https://graph.facebook.com/me?sdk=ios&sdk_version=2&access_token=123902817987|8cb9e8408d2685cef853cd80.9-747882379|UGu5NvcAHiXuGEGzkq&format=json&limit=40&until=1286619821

Но я получил это сообщение:

Failed with error: Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0x9e657a0 {NSUnderlyingError=0x9e656a0 "bad URL", NSLocalizedDescription=bad URL}

Когда я копирую и вставляю в Safari или Chrome, это работает.Я попытался заменить | на %|, как предлагалось здесь , но не работает.

Запрос его из терминала выглядит следующим образом:

curl https://graph.facebook.com/me/statuses?sdk=ios&sdk_version=2&access_token=9999955817987|8ab9e8408d2685cef.3-747882379|UGuxWDuM&format=json&limit=40&until=1286619821
[1] 16190
[2] 16191
[3] 16194
[4] 16195
[5] 16196
[2]   Done                    sdk_version=2
[4]-  Done                    format=json
$ -bash: UGu5NvcAHiXuGEGzkq3KP8xWDuM: command not found
-bash: 8ab9e8408d2685cef853cd80.3-747882379: command not found
{"error":{"type":"OAuthException","message":"An active access token must be used to query information about the current user."}}
[1]   Done                    curl https://graph.facebook.com/me/statuses?sdk=ios
[3]-  Exit 127                access_token=9999955817987 | 8ab9e8408d2685cef.3-747882379 | UGuxWDuM
[5]+  Done                    limit=40

Любойидеи?

Ответы [ 4 ]

21 голосов
/ 24 апреля 2012
 NSString *strURL = [loc_address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

            // requesting weather for this location ... 
            NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat: @"http://www.google.com/ig/api?weather=%@", strURL]] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5.0];
            [req setHTTPMethod:@"POST"];
            [req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
7 голосов
/ 09 июня 2011

Вам необходимо заменить символ канала в URL-адресе на %7C. Это значение в кодировке URL.

Кроме того, URL-адрес должен быть заключен в кавычки, чтобы он работал с curl.

0 голосов
/ 23 октября 2013

Это сообщение об ошибке также может быть вызвано любой ошибкой при наборе URL.Обычно некоторые пробелы в строке URL.

0 голосов
/ 23 ноября 2012

хо хо хо.

Установите location_id, используя идентификатор нужного места.

Это заставляет меня тратить много времени.

Один из десятков секретов фейсбука - отладка сети при создании того, что вы хотите, в данном случае при создании события. Вы увидите правильные названия параметров для того, что вам нужно.

...