Brad
Brad

Reputation: 2237

ASIHTTPRequest Unable to create request (bad url?) Error

I keep getting: Unable to create request (bad url?) error message on a request like:


- (void)grabURLInBackground :(id)sender 
{
    NSURL *url= [NSURL URLWithString:@"http://api.website.com/api_requests/standard_request/getItemRequest={\"Id\":\"Logic\"}"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request addRequestHeader:@"X-WEBSITE-API-DEV-NAME" value:@"cghjm"];
        [request setDelegate:self];
    [request startAsynchronous];
}


- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];
   NSLog(responseString);
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
    NSLog(@"%@:%s Error: %@", [self class], _cmd, [error localizedDescription]);
}

I'm "VERY" new to Objective-C...

Thanks

-Brad

Upvotes: 3

Views: 4424

Answers (1)

Alexsander Akers
Alexsander Akers

Reputation: 16024

Change -startAsynchronous to -startSynchronous and remove the line where you set the request's delegate to self. Asynchronous means that it runs in the background, in which case you need to use the delegate methods. Since you've put everything in one method, you want to use a synchronous request.

Edit

Initialize the URL like this:

[NSURL URLwithString: [@"http://..." stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding]]

Upvotes: 4

Related Questions