2013-02-18 7 views
1

Я пытаюсь получить URL-адрес для фотографий профиля facebook в объективе-c. Я делаю это как следует.Получение изображения профиля facebook с простым NSMutableURLRequest

-(NSString *)getProfileURL:(NSString *)userId{ 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    request = [[NSMutableURLRequest alloc] init]; 

    NSString *requestURL = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture",userId]; 
    NSLog(@"request url is %@",requestURL); 
    [request setURL:[NSURL URLWithString:requestURL]]; 
    [request setHTTPMethod:@"GET"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setTimeoutInterval:60.0]; 

    NSError *error; 
    NSURLResponse *response; 
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

    NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; 
    NSLog(@"data received from url: %@", data); 

    return data; 
} 

Когда я копирую и прохожу из журнала с запросомURL в своем браузере, у меня есть правильный образ. Но когда я смотрю на журнал "Data received from url: ". Я всегда получаю (null).

Любая помощь?

+0

You может использовать этот URL для получения изображений http://graph.facebook.com/idUser/picture?type=normal ... также вы можете сделать график api .. взглянуть на facebook docs https: //developers.facebook .com/docs/get-started/graphapi/ –

+0

Да, но с моим url я также получаю изображение. Но он не хранит его в компоненте Data. – Steaphann

+0

Возможно, ваш запрос возвращает нуль –

ответ

1

соответственно к Graph API documentation, то URL, который вы звоните возвращает изображение непосредственно, то почему вы можете загрузить возвращаемое значение в NSString, вы можете вместо этого создать UIImage экземпляр, как это:

NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
UIImage *image = [[UIImage alloc]initWithData:urlData];