J'ai un problème avec requête HTTP PUT et demande corps comme flux à partir du fichier.NSMutableURLRequest et "requête corps flux épuisé" erreur
Quelle que soit la taille du fichier i obtenir erreur « flux de corps de la demande NSURLErrorDomain -1021 épuisé »
Je sais que je peux passer outre ce problème en mettant en œuvre la méthode:
-(NSInputStream*)connection:(NSURLConnection *)connection needNewBodyStream:(NSURLRequest *)request
mais cette approche n'est pas bon car il va télécharger à nouveau le fichier entier, et 40 Mo de fichier s'avère être 80 Mo de transfert de données.
Si je prends le même fichier que NSData et que je configure le corps de la requête, cela fonctionne correctement.
J'ai essayé d'envoyer la requête Async et de synchroniser le même résultat dans les deux.
Voici mon code, simple et similaire à l'exemple d'Apple:
NSURL *url = [NSURL URLWithString:[self concatenatedURLWithPath:path]];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];
[req setHTTPMethod:@"PUT"];
[req setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setTimeoutInterval:DEFAULT_TIMEOUT];
[req setValue:_contentType forHTTPHeaderField:@"Content-Type"];
NSInputStream *fileStream = [NSInputStream inputStreamWithFileAtPath:_dataStreamLocation];
[req setHTTPBodyStream:fileStream];
_connection = [[NSURLConnection connectionWithRequest:req delegate:self] retain];
Est-ce que je fais quelque chose de mal? Ai-je raté quelque chose?
Cela a-t-il vraiment fonctionné pour vous ....? Je suis également confronté au même problème. – Selvin
pouvez-vous poster un code pour expliquer comment vous avez fait cela? – d2burke