web-dev-qa-db-fra.com

Comment télécharger une image avec AFNetworking 2.0?

Apparemment, il n'y a pas de AFImageRequestOperation, mais seulement AFImageResponseSerializer et franchement je ne comprends pas ou peut-être que je regarde trop longtemps sur le site AFNetworking ... Le téléchargement d'images avec AFNetworking précédent était comme un charme. Je détesterais revenir à l'ancienne AFnetworking, car j'ai fait presque tout avec la nouvelle version ... N'importe qui?

51
raistlin

Vous voulez donc quelque chose comme ça pour 2.0.

AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Response: %@", responseObject);
    _imageView.image = responseObject;

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Image error: %@", error);
}];
[requestOperation start];

Comme mentionné par Adam, vous pouvez également faire quelque chose comme ci-dessous si vous voulez simplement le jeter dans une imageView

[myImageView setImageWithURL:[NSURL URLWithString:@"http://sitewithimage.com/images/myimage.png"]];
126
Bot

pour l'ancienne version, il n'y a pas de réponse Sérialiseur, vous pouvez aussi

AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
//requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Response: %@", responseObject);
    _imageView.image = [UIImage imageWithData:responseObject];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Image error: %@", error);
}];
[requestOperation start];
4
lbsweek

Pour les personnes utilisant AFNetworking dans Swift, solution ci-dessus peut être écrit comme ci-dessous

    let requestOperation : AFHTTPRequestOperation = AFHTTPRequestOperation(request: urlRequest)
    requestOperation.responseSerializer = AFImageResponseSerializer()

    requestOperation.setCompletionBlockWithSuccess({ (requestOperation, responseObject) in
       print(responseObject)
        _imageView.image = responseObject as? UIImage

    }) { (requestOperation, error) in
       print(error)
    }
    requestOperation.start()
0
Penkey Suresh