Как я могу реализовать chunked http запросы на iPhone? - PullRequest
1 голос
/ 05 ноября 2010

В настоящее время я пытаюсь использовать NSMutableURLRequest, устанавливая для HTTPBody собственно написанный NSInputStream, который предоставляет эти блоки.реализовать все больше и больше методов в моем классе NSInputStream.Сначала он попросил меня реализовать - streamStatus: и это было довольно просто реализовать, однако теперь он запрашивает _scheduleInCFRunLoop: forMode: ...

В основном я генерирую данные из алгоритма и хотел бы отправитьна сервер через чанк-запрос.

Вот код:

@interface GERHTTPChunkInputStream : NSInputStream
{
  uint8_t counter_;
}

- (GERHTTPChunkInputStream *)init;
- (void)dealloc;
- (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)len;
- (BOOL)getBuffer:(uint8_t **)buffer length:(NSUInteger *)len;
- (BOOL)hasBytesAvailable;
- (NSStreamStatus)streamStatus;

@end

@implementation GERHTTPChunkInputStream

- (GERHTTPChunkInputStream *)init {
  [super init];
  return self;
}

- (void)dealloc {
  assert(NO);
  [super dealloc];
}

- (NSInteger)read:(uint8_t *)buffer maxLength:(NSUInteger)len {
  NSLog(@"Getting more bytes!!!");
  for (int i = 0; i < len; ++i) {
    buffer[i] = ++counter_;
  }
  return len;
}

- (BOOL)getBuffer:(uint8_t **)buffer length:(NSUInteger *)len {
  return NO;
}

- (BOOL)hasBytesAvailable {
  return YES;
}

- (NSStreamStatus)streamStatus {
  return NSStreamStatusNotOpen;
}

@end

1 Ответ

3 голосов
/ 06 ноября 2010

Согласно нескольким обсуждениям в сети, трудно подкласс NSInputStream .Взгляните на Multipart POST, используя NSInputStream или NSInputStream подкласс асинхронный .

Кажется, вам действительно нужно реализовать эти странные частные методы ...

...