ASIHTTPRequest POST для базового лагеря - PullRequest
0 голосов
/ 07 июля 2011

Привет! Я использую ASIHTTPRequest POST для добавления записи о времени в basecamp для вошедшего в систему пользователя.Но

- (void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders

метод ASIHTTPRequest вызывается и в

- (void)requestFailed:(ASIHTTPRequest *)request 

я получаю ошибку, поскольку доступ запрещен.

Мне также нужночтобы отправить токен аутентификации в basecamp URl, пожалуйста, помогите мне, как это сделать.

 NSString *postData=[NSString stringWithFormat:                                             @"<time-entry>\
                <person-id> 898989 </person-id>\
                <date>2011-04-07</date>\
                <hours>2:00</hours>\
                <description>test</description>\
                </time-entry>"];

NSURL *url = [NSURL URLWithString:@"https://test.basecamphq.com/projects/4644/time_entries.xml"];

        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
        [request setDelegate:self];
        [request setRequestMethod:@"POST"];
        [request appendPostData:[postData dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];
        [request addRequestHeader:@"Accept" value:@"application/xml"];
        [request addRequestHeader:@"Content-Type" value:@"application/xml"];
        [request authenticationNeeded];

        [request setValidatesSecureCertificate:NO];
        [request startAsynchronous]; 

Это мой код.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 июля 2011

Предполагая, что это правильный документ API:

http://developer.37signals.com/basecamp/

Затем базовый лагерь с использованием базовой аутентификации HTTP, что означает, что вам нужно сделать это:

[request setAuthenticationScheme:(NSString *) kCFHTTPAuthenticationSchemeBasic];[запрос setUsername: yourApiToken];[request setPassword: @ "X"];

Размещение вашего API-токена там, где написано "yourApiToken".

...