Enrico Susatyo
Enrico Susatyo

Reputation: 19790

Bad URL when requesting with NSURL

I'm trying to request this kind of URL in iPhone 4.0 SDK (access token slightly modified because you don't really need to see it):

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

But I got this message:

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

When I copied and pasted in Safari or Chrome, it works. I tried replacing | with %| as suggested here but doesn't work.

Asking it from the terminal looks like this:

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

Any ideas?

Upvotes: 8

Views: 17447

Answers (4)

slobodans
slobodans

Reputation: 859

This error message, also can be caused by any error in the URL typing. Usually some white space in the URL string.

Upvotes: 0

Nagi
Nagi

Reputation: 349

ho ho ho.

Set location_id using the id of the venue you want.

This make me waste a lot of time.

One of dozen facebook secrets is debug network when making what you want, in this case creating a event. You'll see the correct params names for what you need.

Upvotes: 0

YogiAR
YogiAR

Reputation: 2237

 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"];

Upvotes: 21

csano
csano

Reputation: 13686

You need to replace the pipe character in the URL with %7C. This is the URL encoded value.

Also, the URL needs to be enclosed in quotation marks in order for it to work with curl.

Upvotes: 7

Related Questions