检查url字符串是否返回有效的网页。

时间:2015-01-07 09:11:43

标签: objective-c iphone uiimage nsdate nsurl

如何检查image-url-string是否返回有效的网址? 我在谈论这个网址http://rscagen3t004-dev.tdlinx.dev/sites/all/themes/rsca/resources/images/RSCA_logo.png

您可以看到点击链接时网页不可用。目前我正在我的代码中执行此操作:

 if([meta.met_thumb hasPrefix:@"http://"]){
                imgURL = meta.met_thumb;


                NSData *walImage = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgURL]];
                NSLog(@"walImage is %@",walImage);
                float newHeight2;
                if (walImage != nil) {
                    UIImage *imgIcon = [UIImage imageWithData:walImage];
                    if (imgIcon != nil) {
                        float width = imgIcon.size.width;
                        float heigt = imgIcon.size.height;
                        if(heigt < 240){
                            float newWidth = (heigt / 240);
                            float newWidht2 = (newWidth/ width);
                            //[imgNews setFrame:CGRectMake(40,y, newWidht2,heigt)];
                        }
                        float newHeight =  (width / 240);
                        newHeight2 = heigt/ newHeight;
                    }else{
                        newHeight2 = 240;
                    }

                }else{
                    newHeight2 = 240;
                }


                height = [self heightForStatus:attString] + y + newHeight2 + 70;
            }else{
                height = [self heightForStatus:attString] + y + 240 + 70;
            }

但是执行[[NSData alloc] init]的行需要很长时间。

有人可以帮我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用alloc/init执行行的长时间延迟可能是由于服务器响应缓慢造成的。我刚刚测试过,30秒后我既没有图像也没有错误页面。

检测&#34;有效网址&#34;你应该检查服务器响应。它应该给出正确的响应404 =未找到。另请参阅http响应代码http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

所以你应该做的就是检查你得到的是404还是2xx的响应。然后决定是否有数据并创建图像。但是,如果没有收到图像数据而是网页,那可能会出错。