ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:theURL];
[request setDelegate:self];
NSString *requestIdentifier = [NSString stringWithNewUUID];
[request setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys:
                       [NSNumber numberWithInt:requestType], REQUEST_TYPE,
                       [NSNumber numberWithInt:responseType], RESPONSE_TYPE,
                       requestIdentifier, REQUEST_ID,
                       nil]];

if (request == nil)
{
   return nil;
}

if ([self _isValidDelegateForSelector:@selector(connectionStarted:)])
   [delegate connectionStarted:[[request requestID] stringValue]];

[request startAsynchronous];
return requestIdentifier;
