-3

我是 Objective-c 的新手。我正在尝试执行一个简单的获取请求并获取页面内容,但响应始终为空。

这是我的代码,我在这里做错了什么?

主要的

HttpManager* pHttpManager;
pHttpManager  = [[HttpManager alloc] init];
NSURL *myURL = [pHttpManager getUrlContent:@"http://www.wikipedia.org"];
NSError* error = nil;
if(myURL) {
  NSLog(@"NSURL is valid");
  NSLog(@"absoluteString:%@",myURL.absoluteString);
  NSString *myHomePage = [NSString stringWithContentsOfURL: myURL encoding: NSASCIIStringEncoding error:&error];
  if(myHomePage) {
    NSLog(@"%@", myHomePage);
  } else {
    NSLog(@"Error = %@", error);
  }
} else {
  NSLog(@"NSURL with error");
}

HttpManager 类

@implementation HttpManager
-(NSURL*) getUrlContent:(NSString*) url {
  NSURL *myURL = [NSURL URLWithString:url];
  return myURL;
}

错误:

$ ./obj/simple_app.exe
2013-01-13 10:15:06.400 simple_app[7656] NSURL 有效
2013-01-13 10:15:06.406 simple_app[7656] absoluteString:http://www.wikipedia.org
2013-01-13 10:15:07.383 simple_app[7656] 无法设置阻塞模式 - 提供了无效参数。
2013-01-13 10:15:07.398 simple_app [7656] 错误 = NSCocoaErrorDomain 259

4

1 回答 1

1

通常人们会这样做:

NSString *myHomePage = [NSString stringWithContentsOfURL: myURL
                        encoding: NSUTF8StringEncoding error:&error];

当你尝试时会发生什么?(你为什么首先使用NSASCIIStringEncoding?)

网页http://www.wikipedia.org包含无法用ASCII 编码表示的Unicode字符,但可以用(更现代的)UTF-8 编码表示。除非您使用非常旧的数据,否则几乎没有理由再使用 ASCII。

于 2013-01-13T08:37:06.270 回答