0

背景:iPadアプリにコンテンツをストリーミングするためにErlangで記述されたカスタムHTTPサーバーがあります。私はNSURLConnectionを使用していました。これは、HTTPコンテンツを消費するための標準的な高レベルのAppleの方法です。ただし、データの小さなチャンクがバッファリングされてすぐにコードに渡されないという問題が発生したため、CFNetworkに切り替える必要がありました。

NSURLConnectionが文句を言うことはありませんが、CFNetworkは時々(3回に1回まで)次のエラーを出し、接続を切断します。

The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 303.)

Appleのドキュメントによると、これは「HTTPサーバーの応答を解析できませんでした」に対応します。

これは、接続が数秒間開かれ、応答が行われた後にのみ発生します。

サーバーでtsharkを使用してパケットキャプチャを取得しました。非常に大きく、UTF-8と機密情報が含まれています。

有効なHTTP1.1チャンク応答であることを確認するにはどうすればよいですか?

明確にするために、私は結果を調べましたが、tcpick -C -yP -r ...すぐに間違っているものは何も見つかりませんでしたが、バイトが有効であることを確認するために渡すことができるものがあるかどうか疑問に思っています。

4

2 に答える 2

0

問題となったsndbufのは、ErlangWebサーバーの設定が低すぎることでした。

これは、パケットキャプチャのスキャン、CFStreamを使用したチャンク化されたHTTPのゼロからの実装など、5時間の無駄でした。

于 2012-10-08T14:33:51.443 に答える
-1

有効なHTTP1.1チャンク応答であることを確認するにはどうすればよいですか?

チャンク転送エンコーディング正しく実装されているかどうかを確認する。

于 2012-10-08T09:52:38.930 に答える