Actuellement, j'essaie d'utiliser NSMutableURLRequest, en définissant le HTTPBody sur un NSInputStream écrit personnalisé qui fournit ces segments.Comment puis-je implémenter des requêtes http segmentées sur iPhone?
Ce serait bien si ce n'était pas pour le fait que NSMutableURLRequest me demande d'implémenter de plus en plus de méthodes dans ma classe NSInputStream. Tout d'abord, il m'a demandé d'implémenter - streamStatus: et c'était assez simple à implémenter, mais maintenant il demande _scheduleInCFRunLoop: forMode: ...
Fondamentalement, je génère des données à partir d'un algorithme et je voudrais l'envoyer à serveur via une requête fragmentée.
Voici le code:
@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
_NSInputStream_ implémente deux méthodes mentionnées. Votre classe de flux est-elle vraiment une sous-classe de _NSInputStream_? Il semble que vous ayez une sous-classe de _NSStream_ au lieu de _NSInputStream_. – Codo
Hérité de NSInputStream. La méthode - streamStatus: existait déjà mais lorsqu'elle a été appelée, elle a indiqué que l'implémentation de NSStream était abstraite. L'autre ne semble pas être mis en œuvre. Il semble que NSUrlRequest excepte un NSInputStream interne très spécifique. :( – rui
J'ai le même besoin de créer par programme un flux d'entrée, ce qui s'avère difficile – nont