2011-01-24 5 views
0

NSData 개체에 여러 HTTP 응답 또는 요청이 함께 연결되어 있습니다. 이 요청/응답 스트림을 개별 CFHTTPMessageRef 개체로 토큰 화하는 가장 효과적인 방법은 무엇입니까?Objective-C에서 HTTP 메시지의 토큰 화 스트림

내 현재의 접근 방식은 그때이 특정 요청과 관련된 신체의 길이를 결정하기 위해 Content-Length 헤더의 값을 잡고있는 시점에서 CFHTTPMessageIsHeaderComplete 반환 YES, 때까지 데이터를 한 번에 한 줄을 읽는 것입니다.

이 접근법은 비교적 잘 작동하지만 chunked transfer encoding의 경우에는 실패합니다. 청크 전송을 처리하기 위해 추가 논리를 추가 할 수 있지만 구문 분석 논리는 내가 원하는 것보다 더 커질 것입니다. 마찬가지로, 나는 현재 잘 형성된 메시지 만 다루고있다. 메시지가 완벽하게 포맷되지 않으면 넘어 질 것이다.

데이터 스트림을 개별 HTTP 메시지로 구문 분석 할 수있는 Objective-C 클래스 집합이 있습니까 (이상적)? libcurl이 수행 할 수있는 것입니까?

답변

0

아니요, libcurl은이 문제를 해결할 수 없습니다. 네트워크를 통해 수신되는 실제 HTTP 응답 만 분리합니다.

+0

머리를 주셔서 감사합니다. 나는 토큰 화 코드를 분해 해 버렸고 너무 많은 문제가 아니었다. 가능한 한 작은 일로 도망 갈 수 있는지 알고 싶었습니다. :) –