我正在尝试使用以下代码进行远程服务器调用:
- (IBAction)login:(id)sender
{
// Arguments are subject and body.
NSString *urlString = @"my_url";
NSString *email = self.email.text;
NSString *password = self.password.text;
NSString *url_to_send = [NSString stringWithFormat:urlString , email , password];;
NSString *escapedString = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)url_to_send,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
// Now send to the server
NSURL *url = [NSURL URLWithString:escapedString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
// ***************
// TODO: ok I dont really understand what this is
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
// **************
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
NSLog(@"This is data: %@" , data);
NSLog(@"This is response: %@" , response);
NSLog(@"This is error: %@" , error);
if ( error == nil )
{
// Display a message to the screen.
}
else
if ([data length] > 0 && error == nil)
{
// Do something
}
else
{
// Do something else
}
}];
}
如果我不对 URL 进行编码,它实际上会返回而没有错误。但是,如果我对 url 进行编码,则会出现以下错误:
This is data: (null)
2012-07-08 11:10:56.110 BusinessPlan[1630:14603] This is response: (null)
2012-07-08 11:10:56.111 BusinessPlan[1630:14603] This is error: Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0x684a180 {NSErrorFailingURLStringKey=My_encoded_url, NSErrorFailingURLKey=my_encoded_url, NSLocalizedDescription=unsupported URL, NSUnderlyingError=0x6895d00 "unsupported URL"}
这个错误是什么意思?我编码不正确吗?此外,当我不对其进行编码时,数据和响应对象会返回值,但我不确定如何从这些对象中获取这些值。我如何知道这些对象中有哪些数据?
谢谢!