2014-01-29 3 views
0

Я пишу приложение в iOS, которое интегрируется в Instagram. Я получаю ошибку Http 400 от Instagram при использовании вызова API Like. Однако другие вызовы API работают нормально. Вот часть моего кода, где я отправляю просьбой обПолучение ошибки 400 при вызове Instagram API в Objective-C

{ 
NSDictionary* params = [NSDictionary dictionaryWithObject:_accessToken forKey:@"access_token"]; 
NSString* path = [NSString stringWithFormat:kUserLikeEndPoint, medID]; 

NSURL *url = [NSURL URLWithString:path relativeToURL:[NSURL URLWithString:kInstagramBaseURLString]]; 

NSMutableArray *mutableParameterComponents = [NSMutableArray array]; 
for (NSString *key in [params allKeys]) { 
    NSString *component = [NSString stringWithFormat:@"%@=%@", [key stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[[params valueForKey:key] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    [mutableParameterComponents addObject:component]; 
    } 


url = [NSURL URLWithString:[[url absoluteString] stringByAppendingFormat:[path rangeOfString:@"?"].location == NSNotFound ? @"?%@" : @"&%@", [mutableParameterComponents componentsJoinedByString:@"&"]]]; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setAllHTTPHeaderFields:defaultHeaders]; 

likeInstagramConnection = [NSURLConnection connectionWithRequest:request delegate:self]; 

} 

Именно в этой связи, что я получаю следующее сообщение об ошибке

Error Domain=HTTP Code=400 "HTTP Error" UserInfo=0xd9571b0 {NSLocalizedDescription=HTTP Error} desc <NSHTTPURLResponse: 0xd9574a0> { URL: https://api.instagram.com/v1/media/632580883841234624_257450972/likes?access_token=ACCESS_TOKEN_GOES_HERE } { status code: 400, headers { 
Connection = "keep-alive"; 
"Content-Language" = en; 
"Content-Length" = 92; 
"Content-Type" = "application/json; charset=utf-8"; 
Date = "Tue, 28 Jan 2014 07:17:52 GMT"; 
Server = nginx; 
"Set-Cookie" = "csrftoken=5eaa89da550811f9d62d5c15525ceebf; expires=Tue, 27-Jan-2015 07:17:52 GMT; Max-Age=31449600; Path=/, ccode=US; Path=/"; 
Vary = "Cookie, Accept-Language"; 
"X-Ratelimit-Limit" = 5000; 
"X-Ratelimit-Remaining" = 4997; 

}}

Спасибо за вашу помощь

+1

Получите сетевой анализатор, такой как Charles Proxy (пробная плата за 30 дней). Он прост в использовании и поддерживает соединения https. – zaph

+0

Если я вхожу в тот же HTTP-запрос в консоли API Instagram, он отлично работает. – user2827665

+0

У вас есть ошибка в коде. Вам нужно будет выяснить, что это такое. Один из способов - посмотреть, что вы «на-проводнике» и что возвращается. Когда я работаю над этой проблемой, у меня работает Чарльз, и консоль открыта, чтобы увидеть какие-либо ошибки. Вы можете настроить Charles для отображения только вызовов на определенный URL-адрес, Instagram в этом случае. – zaph

ответ

0

Может быть токеном доступа с истекшим сроком действия. Я знаю, что в python я получаю этот код ошибки в исключении API-вызова, и я не понимаю, почему они будут кодировать коды состояния между языками. Надеюсь, это поможет вам в правильном направлении.

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