NSURLConnection sendSynchronousRequest - 缺失数据

5

我正在尝试使用同步请求读取文本文件。但是它没有起作用,但我也没有收到任何错误或警告。

请问有人能告诉我我做错了什么吗?

NSString *url = @"http://pappons.com/test.txt" ;

NSLog(@"getHTTPData: %@" , url ) ;
NSURLResponse* response = nil;

NSURLRequest* urlRequest =  [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

NSData* data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil] ;

NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog( @"data: %@" , myString ) ;

输出:

2012-06-15 11:33:42.209 FrederikTest[1365:707] getHTTPData: http://pappons.com/test.txt 
2012-06-15 11:33:42.306 FrederikTest[1365:707] data: 

1
NSLog(@"Response:%d", ((HTTPResponse*) response).statusCode); 打印什么? - James Webster
此外,使同步请求会冻结主线程。 - Lorenzo B
如果在主线程上执行,则会产生阻塞。 - James Webster
@JamesWebster 谢谢,我忘记写了...这是隐含的 :) - Lorenzo B
代码很好,但要在后台进程上运行,否则可能会在主线程上冻结。 - Paresh Navadiya
1个回答

8

传入 NSError 来检查是否发生错误。

NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];

1
谢谢帮忙!原来是手机的互联网连接被禁用了。 - Frederik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接