2014-03-27 2 views
0

url에서 이미지를 다운로드하고 응답 객체에 NSData를 가져와야합니다. 브라우저에서 openned 때AFImageRequestOperation을 사용하지 않고 AFNetworking 이미지 다운로드

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer]; 
responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"image/jpeg"]; 
manager.responseSerializer = responseSerializer; 

AFHTTPRequestSerializer *requestSerializer = [AFHTTPRequestSerializer serializer]; 
[requestSerializer setValue:@"image/jpeg" forHTTPHeaderField:@"Accept"]; 
[requestSerializer setValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"]; 
manager.requestSerializer = requestSerializer; 

[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 

    NSData *data = responseObject; 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

}]; 

응답 객체는 항상 nil 일, URL이 정확한지, 그것은 이미지를 보여줍니다 동작 설명은 내용 길이 및 내용 유형을 보여줍니다

내가 작업을 설정하는 방법입니다 (image/jpeg), 응답 객체는 그것을 가져 오는 것 같지 않습니다.

당신에게

답변 감사합니다 대신 responseObject, operation.reponseData의를 사용할 필요가있다.

+0

@AdamEberbach 그것은 중복되지 않으며, 똑같은 것이 아닙니다. – zevonja

+0

실패 블록에서'operation.reponseData'에 접근합니까? – vikingosegundo

+0

성공 블록에서 오류가 발생하지 않습니다. – zevonja

답변

3

AFNetworking에게 이미지 데이터를 기대하고 그걸 deserialize해야한다고 말할 필요가 있습니다.

image/tiff 
image/jpeg 
image/gif 
image/png 
image/ico 
image/x-icon 
image/bmp 
image/x-bmp 
image/x-xbitmap 
image/x-win-bitmap 

:

manager.responseSerializer = [AFImageResponseSerializer serializer]; 
기본적으로

AFImageResponseSerializer Class Reference

는 AFImageSerializer는 가있는 UIImage 또는 NSImage에서 지원하는 이미지 형식에 해당하는 다음 MIME 유형을 받아 들인다

응답 : responseObject 대신 operation.reponseData를 사용해야합니다.

사용자가 올바른 직렬화를 수행하려면 responseObject가되며 즉시 사용할 수있는 객체로 변환됩니다. operation.reponseData는 서버에서 보낸 원시 데이터를 포함합니다. 보통 당신이 필요로하는 것이 아닙니다.

+0

AFnetworking에 이미 데이터 이미지가 필요하다고 말했습니까? 응답 직렬 변환기를 참조하십시오. 그리고 작업은 이미지가 응답에 있음을 인식하고 이미지 데이터를 responseObject에 넣지 않습니다. 나는 그동안 그것을 해결했다. 지금 대답을 업데이트 할 것입니다. – zevonja

+0

하지만 이미지 객체로 바꾸려면 건너 뜁니다. – vikingosegundo

관련 문제