-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そもそもなぜあなたはそれを使ったのですか?)

の Web ページには、 ASCII エンコーディングでは表現できないUnicodehttp://www.wikipedia.org文字が含まれていますが、(はるかに新しい) UTF-8 エンコーディングでは表現できます。非常に古いデータを扱う場合を除き、ASCII を使用する理由はほとんどありません。

于 2013-01-13T08:37:06.270 に答える