NSURL Failed With Error NSURLErrorDomain “bad URL”

I got the following error when trying to connect to my web service using NSURL:

Failed with error: Error Domain=NSURLErrorDomain Code=-1000 "bad URL"

My URL was a GET request and so had several parameters in it. At first, I tried to URL encode the spaces manually using %20 (you’ll have to use %% in your literal string to escape the % sign), which unfortunately did not work. The real fix was simple, however, just use the stringByAddingPercentEscapesUsingEncoding method of the NSString object, e.g.:

NSString *myURLString = [NSString stringWithFormat:@"https://www.dforge.net/api/v1/the-webservice?p=a parameter with spaces"];
NSURL *url = [NSURL URLWithString: [myURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
[req setHTTPMethod:@"GET"];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];

In my case, I used UTF-8 encoding.