2012-03-17 3 views
0

여기에 작은 Reddit API 문제가 있습니다. 여기에 설명 된대로 내가는 레딧 API를 따르도록 노력하고 있어요 :error.USER_REQUIRED가 objective-c에서 Reddit 링크를 제출하려고 시도했을 때 발생했습니다.

NSString *user = [[NSString alloc]initWithString:[userFld text]]; 
NSString *passwd = [[NSString alloc]initWithString:[passwordFld text]]; 
NSString *urlString = [NSString stringWithFormat:@"http://www.reddit.com/api/login/username/?user=%@&passwd=%@", 
         [user stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], 
         [passwd stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

NSURL *url = [NSURL URLWithString:urlString]; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

나에게 내가 추출되는 결과를 제공합니다

https://github.com/reddit/reddit/wiki/API

로깅을 간단한 NSMutableURLRequest를 사용하여 것은 문제가되지 않습니다 사용자 모드 - 해시 :

4029916%2C2010-04-30T22%3A51%3A52%2C1243925043100000000000000000000000000000 

다음으로 사용하여 게시하는 것을 시도하고있다 :

그러나
NSString *redditUrlString = [NSString stringWithFormat: 
    @"http://www.reddit.com/api/submit/?uh=%@&kind=link&url=%@&sr=%@&title=%@&r=%@&api_type=json", 
    [appDelegate globalUhString], 
    @"www.google.com", 
    @"funny", 
    @"Google.com", 
    @"funny"]; 

NSURL *url = [NSURL URLWithString:redditUrlString]; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

, 나는 JSON 응답이 항상 내가 유행의 해시로 사용할 상관없이 아래의 오류가 나타납니다 ,이 연결에서받은 데이터를 형성 추출 할 때

[ "에는 .error을 .USER_REQUIRED "]

내가 잘못했거나 설명 할 수있는 사람이 있습니까?

답변

1

uh 매개 변수와 함께 reddit_session 쿠키가 전달되지 않은 것으로 보입니다. api documentation은 오류를받은 이유를 설명하는 것으로 보입니다.

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 

applicationDidBecomeActive 핸들러에서, 모든 응용 프로그램 사이에 공유되는 때문에 CookieAcceptPolicy에 쿠키를 거부 할 수 있으므로 : this answer에 따르면, 당신이 코드를 실행해야 할 수도 있습니다 것 같습니다.

+0

위의 메서드에이 줄을 추가했는데 NSMutableURLRequest에서 쿠키를 캡처하는 방법은 무엇입니까? 그것은 (연결 *) 연결 didReceiveData' 메서드에서 어떤 코드일까요? –

+0

자동 저장됩니다. The docs : NSHTTPCookie 클래스는 쿠키를 캡슐화하여 일반적인 쿠키 속성에 대한 접근자를 제공합니다. 또한 HTTP 쿠키 헤더를 NSHTTPCookie 인스턴스로 변환하고 NSHTTPCookie 인스턴스를 NSURLRequest와 함께 사용하기에 적합한 헤더로 변환하는 메소드를 제공합니다. URL 로딩 시스템은 NSURLRequest에 적합한 저장된 쿠키를 자동으로 보냅니다. 요청에 쿠키를 보내지 않도록 지정하지 않은 경우 마찬가지로 NSURLResponse에 반환 된 쿠키는 현재 쿠키 허용 정책에 따라 허용됩니다. – Petesh

+0

이 문제가 해결되었습니다. 일단 쿠키가 로그인되면 새로운 요청으로 쿠키를 설정할 수있었습니다. –

관련 문제