我一直在尝试从网址下载图片(更确切地说是Craigslist)
首先我使用了SDWebImage框架,但是看不到图像。之后我尝试了一种简单的方法来下载网址:
将此网址用于图片:
http://images.craigslist.org/01212_fxFfHsZFhoi_600x450.jpg
UIImageView image;
NSString *urlstring = [NSString stringWithFormat:@"http://images.craigslist.org/01212_fxFfHsZFhoi_600x450.jpg"];
NSURL *url = [NSURL URLWithString:urlstring];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[image setImageWithURLRequest:request
placeholderImage:[UIImage imageNamed:@"placeholder.png"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){
// Succes on loading image
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
// Fail to load image
}];
我仍然无法在图片视图中看到图片。
问题是,如果我更改网址并使用相同的确切代码,图像将被正常下载。我试图在Safari中加载图像,它工作正常,所以链接没问题。
例如我用过: http://monsieurstolli.files.wordpress.com/2013/10/meh.jpg
它有效。
我不知道如何下载该图片。
编辑:
我做了一些调查,我改变了代码:
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
requestOperation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", responseObject);
_imga.image = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Image error: %@", error);
}];
[requestOperation start];
}
但是这次我收到了以下错误:
2014-10-16 15:07:10.537 CraigslistChecker[3192:907] Image error: Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: not found (404)" UserInfo=0x1c5b8e30 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x1c59ac60>, NSErrorFailingURLKey=images.craigslist.org/00W0W_blCL2sqk1Jt_600x450.jpg, NSLocalizedDescription=Request failed: not found (404), com.alamofire.serialization.response.error.data=<0d0a>}
purgeIdleCellConnections: found one to purge conn = 0x1c59b1f0
答案 0 :(得分:0)
当我在网络浏览器中请求时,您发布的网址会返回404(未找到)错误,这意味着服务器拒绝向您提供网址。所以:
我猜是最后一个。如果是这样,设置&#34; Referer&#34; NSURLRequest上的(有意拼写错误的)标题字段对包含相关图片的网页的网址应该可以解决问题,但您应该查看Craigslist以确保这样做不会违反他们的服务条款。否则,他们很有可能将您应用的用户代理字符串列入黑名单。