2013-10-25 4 views
0

Я хочу отправить форму API через приложения ios с помощью ASIHTTPREQUEST. моя проблема в том, что когда я нажимаю кнопку отправки или отправки, ничего не происходит. Я подключил кнопку отправки к контроллеру просмотра. Фактически, что я хочу сделать, это приложение для обмена сообщениями, используя мой собственный сервер хостинга, который должен отправить значение uuid и password для отправки запроса. Вот мой код реализации.Как отправить запрос API через asihttprequest

 - (IBAction)sendClicked:(id)sender { 

    [sendButton resignFirstResponder]; 
    {   
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL   URLWithString:@"https://cc.frifon.net_dosmssend/"]]; 
[request setDelegate:self]; 
[request setNumberOfTimesToRetryOnTimeout:3]; 
[request setRequestMethod:@"POST"]; 
[request setPostValue:USERNAME forKey:@"sip"]; 
[request setPostValue:PASSWORD forKey:@"pwd"]; 
[request setPostValue:UUID forKey:@"uuid"]; 
[request setPostValue:API_PASSWORD forKey:@"key"]; 
[request setPostValue:messageText forKey:@"message"]; 
[request setPostValue:NUMBER forKey:@"to"]; 
[request setPostValue:@"Submit" forKey:@"submit"]; 
[request start]; 
nil; 

    [request startAsynchronous]; 
    NSError *error = [request error]; 
if (!error) { 
    NSString *response = [request responseString]; 
    messageText.text = response;} 
    } 
    } 
    @end 

Я также хочу получить список сообщений, которые были отправлены. Огромное спасибо тем, кто отвечает на этот вопрос.

+0

ASIHTTPRequest имеет было прекращено какое-то время ... Было бы неплохо изучить альтернативные библиотеки, такие как AFNetworking, для лучшей поддержки – liamnichols

ответ

1

Вы не можете прочитать свойства ошибки сразу после запуска StartAsynchronious. Вы должны ждать получения сообщений из протокола делегата от ASIHTTP

Реализовать этот протокол на классе

- (void)requestFinished:(ASIHTTPRequest *)request { 
    NSLog(@"Response %d ==> %@", request.responseStatusCode, [request responseString]); 
} 

Вы также можете обращаться другие методы, если вы выбираете, такие как:

- (void)requestStarted:(ASIHTTPRequest *)request; 
- (void)requestFailed:(ASIHTTPRequest *)request; 
+0

Спасибо за вашу помощь. Я сделал этот запрос, но он сказал мне, что использование необъявленного идентификатора «requestFinished». Как я могу заявить об этом? здесь снова мой код: [запрос startAsynchronous]; - (void) requestFinished: (ASIHTTPRequest *) request { NSError * error = [request error]; \t if (! Error) { \t \t NSString * response = [request responseString]; \t \t messageText.text = response; } } – ashraf

+0

Вы объявляете ответ протокола в своем интерфейсе? – tdelepine

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