AFHTTPClient를 확장하는 웹 서비스 클래스 (MyAPIClient)가 있습니다. 웹 서버에 대한 모든 요청은 postPath 메소드를 사용하여 전송되며 데이터는 JSON 형식입니다. MyAPIClient에는 하나의 방법 만 있습니다.AFHTTPClient 및 gzip
- (id)initWithBaseURL:(NSURL *)url
{
self = [super initWithBaseURL:url];
if (!self) {
return nil;
}
[self setDefaultHeader:@"Accept" value:@"application/json"];
[self setParameterEncoding:AFJSONParameterEncoding];
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
return self;
}
이제 gzip 인코딩을 추가하고 싶습니다. FAQ 말한다 같이
간단히하는 NSMutableURLRequest에서 HTTPBody 승차 데이터를 압축하고, 상기 요청을 이용하여 작업을 만들기 전에 다시 설정.
데이터를 압축 할 수 있도록 Godzippa 라이브러리가 있습니다.
-(void)postPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(AFHTTPRequestOperation *, id))success failure:(void (^)(AFHTTPRequestOperation *, NSError *))failure
{
NSMutableURLRequest *request = [self requestWithMethod:@"POST" path:path parameters:parameters];
NSData *newData = [[request HTTPBody] dataByGZipCompressingWithError:nil];
[request setHTTPBody:newData];
[self setDefaultHeader:@"Content-Type" value:@"application/gzip"];
AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure];
[self enqueueHTTPRequestOperation:operation];
}
을 나는 이것이 AFHTTPClient이 JSON에있는 NSDictionary 변환 만 그때는 GZIP으로 인코딩 할 수 있으며, 필요로 할 수있는 올바른 방법이 아니다 생각 : 다음 나는이 같은 postPath 방법, 뭔가를 오버라이드 (override) 할 필요가 있다고 생각 오른쪽 "Content-Type"을 설정하십시오. 어떤 도움을 주시면 감사하겠습니다. 누군가가 같은 문제가있는 경우