2014-01-17 4 views
1

AFNetworking 2.0 및 NSURLSession을 사용하여 보안 서버에서 이미지를 다운로드하려고합니다. 그러나, 나는이 같은 다운로드하려고하면 이미지로 변환 할 수없는 바이트 스트림을 얻을 :AFNetworking 2.0, NSURLSession을 사용하여 이미지 다운로드

- (SLRequestExecutionBlock) _getExecutionBlock 
{ 
    __block SLBaseRequest *blockSelf = self; 
    SLRequestExecutionBlock executionBlock = ^{ 

     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
     manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]; 
     manager.securityPolicy.allowInvalidCertificates = YES; 

     manager.responseSerializer = [AFImageResponseSerializer serializer]; 
     manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
     if ([SLLoginManager sharedManager].accessToken) { 
      [manager.requestSerializer setValue:[SLLoginManager sharedManager].accessToken forHTTPHeaderField:@"access_token"]; 
     } 

     [manager GET:_imageURL 
      parameters:nil 
      success:^(AFHTTPRequestOperation *operation, id responseObject) { 
       blockSelf.returnAttributes = responseObject; 
       if (blockSelf.completionBlock) { 
        blockSelf.completionBlock(blockSelf.returnAttributes,nil); 
       } 
       [[SLNetworkQueueManager sharedManager] requestDidSucceed:blockSelf]; 
      } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
       //check error code for network errors 
       NSError* err = error; 
       [blockSelf failOrTryRefreshTokenForError:err]; 

      }]; 
    }; 

    return executionBlock; 
} 

은 무엇을 제공 :이 사용하려고하면

- (SLRequestExecutionBlock) _getExecutionBlockSession 
{ 
    __block SLBaseRequest *blockSelf = self; 
    SLRequestExecutionBlock executionBlock = ^{ 

     AFHTTPSessionManager *imageDownloadManager = [AFHTTPSessionManager manager]; 
     [imageDownloadManager setResponseSerializer:[AFImageResponseSerializer serializer]]; 
     [imageDownloadManager setRequestSerializer:[AFJSONRequestSerializer serializer]]; 

     [imageDownloadManager.requestSerializer setValue:@"Accept" forHTTPHeaderField:@"application/json"]; 
     if ([SLLoginManager sharedManager].accessToken) { 
      [imageDownloadManager.requestSerializer setValue:[SLLoginManager sharedManager].accessToken forHTTPHeaderField:@"access_token"]; 
     } 

     imageDownloadManager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]; 
     imageDownloadManager.securityPolicy.allowInvalidCertificates = YES; 

     NSDictionary *params = nil; 

     [[SLHttpNetworkManager sharedManager] GET:_imageURL 
             parameters:params 
              success:blockSelf.standardSuccessBlock 
              failure:blockSelf.standardErrorBlock]; 
    }; 

    return executionBlock; 
} 

언급 그냥 가치, 그것은 완벽하게 작동 ?

답변

0

브라우저에서 이미지를 열 수있는 경우에도 실제로 서버에서 오는 이미지에 문제가있었습니다. png 태그가 손상되었습니다.

관련 문제