我有一个特殊的URL,可以在浏览器中返回图像。我想把这个特殊的图像放到UIImage对象中。但是,在我下面的代码示例中,似乎返回的数据不是图像。
浏览器似乎知道图像,我怎样才能看到图像?
是的,我需要通过proxify代理服务器获取此图片以解决我们遇到的问题。
以下是示例代码。
-(UIImage*)retrieveMap
{
NSString* proxifiedGoogleMapURL = @"http://proxify.com/p/011010A1000100/687474703a2f2f6d6170732e676f6f676c652e636f6d2f6d6170732f6170692f7374617469636d61703f63656e7465723d34312e3031343130312c2d3130342e393738333333267a6f6f6d3d362673697a653d35303678353036267363616c653d32266d6170747970653d726f61647326666f726d61743d706e672673656e736f723d66616c7365";
NSURLRequest * firstRequest = [NSURLRequest requestWithURL:[NSURL URLWithString: proxifiedGoogleMapURL]];
NSURLResponse * firstResponse = nil;
NSError * firstError = nil;
NSData* firstData = [NSURLConnection sendSynchronousRequest:firstRequest returningResponse:&firstResponse error:&firstError];
UIImage* dataAsImage = [UIImage imageWithData:firstData];
if(firstError != nil || dataAsImage == nil)
{
NSLog(@"Failed in retrieving the map");
}
else
{
NSLog(@"Succeeded in retrieving the map");
}
return dataAsImage;
}
答案 0 :(得分:0)
我发现了一些问题:
在尝试转换为UIImage之前,您应该测试firstError != nil
。经过一段时间的测试就没用了。
我试图访问您发布的网址,我收到一条错误消息,说明只有登录的用户可以使用。在浏览器中,它可能适用于您,因为您可能已登录,但iphone是不,你从proxify获得HTML
要查看您获得的响应,请在创建图像之前将其转换为NSString并将其显示到控制台:
NSLog(@"Response from server: %@", [[NSString alloc] initWithData:firstData encoding:NSUTF8StringEncoding]