:dataWithContentsOfURL - サーバーから期待されるものは何ですか?私は、URLの内容でのNSDataを作成しようとしています
NSString *theUrl = [NSString stringWithString:@"http://127.0.0.1:8090"];
NSError *connectionError = nil;
NSData *inData = [NSData dataWithContentsOfURL:[NSURL URLWithString:theUrl] options:NSDataReadingUncached error:&connectionError];
NSInteger code = [connectionError code];
if (code != 0)
{
NSString *locDesc = [NSString stringWithString:[connectionError localizedDescription]];
NSString *locFail = [NSString stringWithString:[connectionError localizedFailureReason]];
NSLog(@"Error: %d %@ %@", code, locDesc, locFail);
}
else if ([inData length] == 0)
{
NSLog(@"No data");
}
私はクライアントにHello Worldのを返し、ローカルホスト上で実行されている、超簡単なJava HTTP Serverを持っている:
DataOutputStream os = new DataOutputStream(s.getOutputStream()); // s is the socket
os.writeBytes(new String("Hello World\0"));
os.flush();
os.close();
s.close();
Google Chromeをhttp://127.0.0.1:8090にすると、Hello Worldが期待通りに表示されるので、データはが返されます。 objective-cコードを実行すると、inDataは空(0x0、データ長は0)で、エラーコードは0なので、検査するエラーはありません。私がURLを "http://www.google.com"に変更すると、データ長が> 0になるとうまくいくように見えます。
ローカルhttp-serverに行くと、inDataが空である理由が私の質問です。ストリームは特定のデータシーケンスで終了する必要がありますか?
大きなコマンド!出力はHello Worldと他にはありません。それは私がデバイスをつかまえることができると思ったものです。 dataWithContentsOfURLを使用してプレーンテキストを読み取ることはできませんか?私はスーパーシンプルなサーバーから返すJSONデータを読む予定です。ヘッダーを追加する必要があると思いますか? URLから画像を読み込むだけの場合はどうすればいいですか?その場合、ヘッダーは設定されません。 – Henrik
実際には、次のものを返すと動作します。 "Content-Type:text/plain; charset = utf-8 \ nHello World \ 0 \ n" – Henrik
ヘッダーをペイロードから分離するために2つの '\ n 'は必要ありませんか? – Monolo