Я пытаюсь создать NSData с содержимым URL:
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");
}
У меня есть супер простой Java http-сервер, работающий на локальном хосте, который возвращает Hello World клиенту:
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, как и ожидалось, поэтому данные возвращаются .Когда я запускаю код target-c, inData пуста (0x0, длина данных равна 0), а код ошибки равен 0, поэтому у меня нет ошибки для проверки.Если я изменяю theUrl на "http://www.google.com", он, кажется, работает нормально, так как длина данных становится> 0.
Поэтому мой вопрос заключается в том, почему inData пуст, когда я иду на локальный http-сервер. Поток должензавершаться с определенной последовательностью данных?