如何在 AFNetworking 2.0 中实现带身份验证的图像下载?
Posted
技术标签:
【中文标题】如何在 AFNetworking 2.0 中实现带身份验证的图像下载?【英文标题】:How To Implement Image Download With Authentication In AFNetworking 2.0? 【发布时间】:2014-10-10 23:14:56 【问题描述】:我有以下在 AFNetworking 1.0 中工作的图像下载功能。它是我为 AFNetworking 1.0 实现 HTTPClient 的一部分。
- (void)downloadImageWithCompletionBlock:(void (^)(UIImage *downloadedImage))completionBlock identifier:(NSString *)identifier
NSString* urlString = identifier;
AFImageRequestOperation* operation = [AFImageRequestOperation imageRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] imageProcessingBlock:nil
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
//LogInfo(@"SUCCESS GETTING PHOTO: %@", response);
completionBlock(image);
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error)
LogInfo(@"ERROR GETTING PHOTO IN downloadImageWithCompletionBlock.");
];
[operation setAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge)
NSURLCredential *newCredential = [NSURLCredential credentialWithUser:self.strSPUser password:self.strSPPW persistence:NSURLCredentialPersistenceForSession];
[challenge.sender useCredential:newCredential forAuthenticationChallenge:challenge];
];
[self enqueueHTTPRequestOperation:operation];
对于我为 AFNetworking 1.0 编写的 HTTPClient 自定义代码,我没有找到一个简单的转换/升级到 AFNetworking 2.0 的方法。正如您在函数中看到的,我将凭据传递给我的 restful web 服务以下载图像。
如何在AFNetworking 2.0中实现上述图片下载功能?
【问题讨论】:
【参考方案1】:在 AFNetworking 2 中几乎相同。AFHTTPRequestOperation
有一个 credential
属性和一个 setWillSendRequestForAuthenticationChallengeBlock:
方法。
【讨论】:
您真的需要我复制粘贴您的代码示例并将setAuthenticationChallengeBlock
替换为setWillSendRequestForAuthenticationChallengeBlock
吗?这是相同的代码。以上是关于如何在 AFNetworking 2.0 中实现带身份验证的图像下载?的主要内容,如果未能解决你的问题,请参考以下文章
[译] 在Web API 2 中实现带JSON的Patch请求