2011-01-24 1 views
0

J'ai un objet NSData qui consiste en plusieurs réponses HTTP ou demandes concaténées ensemble. Quel est le moyen le plus efficace de scinder ce flux de requêtes/réponses en objets individuels CFHTTPMessageRef?Flux de messages token HTTP en Objective-C

Mon approche actuelle est de lire les données d'une ligne à la fois jusqu'à CFHTTPMessageIsHeaderComplete retours YES, à quel point je puis saisir la valeur de l'en-tête Content-Length pour déterminer la longueur du corps associé à cette demande particulière. Cette approche fonctionne raisonnablement bien, mais échoue dans le cas chunked transfer encoding. Je pourrais maintenant ajouter une logique supplémentaire pour gérer les transferts en morceaux, mais ma logique d'analyse augmentera plus que je ne le souhaiterais. De même, je ne traite actuellement que des messages bien formés - il va se déclencher si un message n'est pas parfaitement formaté.

Existe-t-il (idéalement) un ensemble de classes Objective-C capables d'analyser un flux de données en messages HTTP discrets? Est-ce quelque chose que libcurl pourrait effectuer?

Répondre

0

Non, libcurl ne peut pas séparer ceci pour vous. Il sépare seulement les réponses HTTP réelles qu'il reçoit sur le réseau.

+0

Merci pour le heads up. J'ai fini par factoriser le code de tokenisation et ce n'était pas trop un problème. Je voulais juste voir si je pouvais partir avec le moins de travail possible. :) –