在运行 iphone 应用程序时,我多次收到以下错误
The connection failed due to a malformed URL
在CFNetwork Error Codes Reference
,我得到了这个错误由 CFNetwork 触发的信息
- 何时以及为何触发此错误?
- 如何摆脱这个错误?
NSURLConnection 有一个方法 canHandleRequest 将返回一个布尔值,无论 url 是否有效,例如
NSString *strUrl = [NSString stringWithFormat:@"http://test.com/stopBoard/%i",busStopCode];
NSURL *url = [NSURL URLWithString:strUrl];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:20.0];
// a cache policy of NO must be used otherwise the previous query is used if the phone is not online
BOOL canGo = [NSURLConnection canHandleRequest:request];
if(canGo){
connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self
startImmediately:YES];
} else {
self.errorMessage = @"\n\nurl check failed\n\n";
return NO;
}