NSURLConnection/NSURLRequest が gzip リクエストをサポートしているかどうかは誰にもわかりません。
もしそうなら、あなたはより多くの情報を提供できますか?
NSURLConnection/NSURLRequest が gzip リクエストをサポートしているかどうかは誰にもわかりません。
もしそうなら、あなたはより多くの情報を提供できますか?
文書化されていないようですが、透過的な gzip をサポートしているという証拠があります。つまり、サーバーが gzip エンコードをサポートしていて、要求に*を含むヘッダーがある場合、サーバーは gzipされた応答を送信し、自動的にデコードされます。NSURLConnection
Accept-Encoding
gzip
NSURLConnection
*NSURLRequest
デフォルトでそのヘッダーを追加する場合があります。そうでない場合は、次のように手動で追加する必要があります。
[urlReq setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]
NSURLRequest
gzip を にデコードしNSData
ます。サーバーの応答などに"Content-Encoding" = gzip
;が含まれています。はNSData
デコードします。自動的にデコードしたくない場合は、以下のコードを追加してください。これはプライベート API です。
//import CFNetwork.framework
extern CFStringRef kCFURLRequestDoNotDecodeData;
typedef const struct _CFURLRequest* CFURLRequestRef;
extern void _CFURLRequestSetProtocolProperty(CFURLRequestRef,CFStringRef,CFTypeRef);
//NSURLRequest init ...
//...
CFURLRequestRef requestRef = (CFURLRequestRef)[request performSelector:@selector(_CFURLRequest)];
_CFURLRequestSetProtocolProperty(requestRef,kCFURLRequestDoNotDecodeData,kCFBooleanTrue);