Question

Je dois envoyer de grandes quantités de données (fichiers d'image) par POST dans un WebView, alors j'utilise NSMutableURLRequest avec setHTTPBody:.

Problème:. Si la taille des données est supérieure à environ 3 Mo, l'application se met soudain à manger d'énormes quantités de mémoire et devient lent chien avec toute la pagination

Je l'ai essayé de changer ceci:

[request setHTTPBody:[NSData dataWithBytes:post.Get() length:post.Size()]];

.. à ceci:

[request setHTTPBodyStream:[NSInputStream inputStreamWithData:
    [NSData dataWithBytes:post.Get() length:post.Size()]]];

.. mais rien ne semble se passer et la demande seulement fois sur. Je reçois aucun des callbacks normaux (comme WebViewProgressEstimateChangedNotification) et les données ne semble pas obtenir ensemble.

Alors, comment puis-je (a) à l'approche NSData ne pas être un porc de mémoire ou (b) faire le travail d'approche de flux (en supposant qu'il est une bonne solution)?

Était-ce utile?

La solution

J'ai fini par résoudre en utilisant NSURLConnection pour faire le télécharger manuellement, puis alimenter le résultat dans le WebView. En prime, je reçois beaucoup mieux la progression du téléchargement met à jour cette façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top