0

我正在使用这段代码:

NSString *recievedData;

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.site.com/"]
                                          cachePolicy:NSURLRequestUseProtocolCachePolicy
                                      timeoutInterval:60.0];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
    // Create the NSMutableData to hold the received data.
    // receivedData is an instance variable declared elsewhere.
    recievedData = [NSMutableData data];

    NSLog(@"%@", recievedData);
} else {
    // Inform the user that the connection failed.
    NSLog(@"Unsuccessful.");
}

这是这个的修改版本。

我的问题是它总是返回

<>

无论我是否连接到互联网,它总是会成功。

4

2 回答 2

0

NSURLConnection 不能那样工作。您开始一个连接,然后在接收到数据时接收回调。

如果您想要一个简单的调用来检索远程数据,请使用 NSData 的 dataWithContentsOfURL 方法。但是,您应该只在辅助线程上使用它,否则它会在调用期间锁定您的用户界面,并且如果花费太长时间,系统可能会终止您的应用程序。

请参阅NSURLConnection 示例中的完整代码。

于 2012-05-13T18:06:16.420 回答
0

您还没有收到任何数据,您刚刚实例化了将保存接收到的数据的对象。您需要实现处理响应和失败的委托方法,并且通常最好异步使用 NSURLConnection。

有一些使用 NSURLConnection的示例代码

于 2012-05-13T18:14:09.923 回答