2012-05-03 3 views
0

У меня есть специальный URL-адрес, который возвращает изображение в браузере. Я хотел бы поместить это специальное изображение в объект UIImage. Однако, в моем примере кода ниже, кажется, что возвращенные данные не являются изображением.Не удается получить изображение с URL-адреса, используя NSURLConnection sendSynchronousRequest

Браузер, похоже, знает об изображении, как я могу добраться до изображения?

Да, мне нужно получить это изображение через прокси-сервер 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

Я заметил несколько проблем:

  1. Вы должны проверить firstError != nil, прежде чем пытаться преобразовать в UIImage. Тестирование его после своего рода делает его бесполезным.

  2. Я попытался получить доступ к этому URL-адресу, который вы опубликовали, и я получил сообщение о том, что он доступен только для зарегистрированных пользователей. В браузере он может работать для вас, поскольку вы, вероятно, вошли в систему, но iphone не является и вы получите, что HTML от Proxify

  3. чтобы увидеть ответ вы получите, прежде чем создавать изображение преобразовать его в NSString и отображать его на консоль:

NSLog(@"Response from server: %@", [[NSString alloc] initWithData:firstData encoding:NSUTF8StringEncoding]

Смежные вопросы