ASIHTTPЗапрос времени ожидания - PullRequest
2 голосов
/ 03 мая 2011

Здравствуйте. Я отправляю некоторые значения на сервер с помощью ASIHTTPRequest.Все отлично работает до вчерашнего дня, что запрос Finished не работает.(когда приложение отправляет запрос на сервер, индикатор активности и новое представление добавляются к основному представлению и когда запрос завершается, удаляются представления).Я добавил requestFailed для проверки, если произошел сбой, и я получаю эту ошибку:

[3438: 207] Ошибка домена = ASIHTTPRequestErrorDomain Code = 2 «Время ожидания истекло» UserInfo = 0x5ad25c0

Это странно, потому чтовчера тот же код работал нормально.Я уверен, что они не внесли никаких изменений на стороне сервера.

это код:

- (IBAction)convert:(id)sender{

//Get the email from the textfield
NSString *email1 = email.text;

//Save the last used email to load it on the next app launch
[[NSUserDefaults standardUserDefaults] setValue:email1 forKey:@"email"];

//Get the current URL from webview
NSString *currentURL= webView.request.URL.relativeString;

lbl.text = currentURL;

//Count the length of Label
int strL= [lbl.text length];

//The url that the requests will be send.
NSURL *url = [NSURL URLWithString:@"the website"];

//Indicator and its view are loading on the screen
[ind startAnimating];
[self.view addSubview:indView];


//ASIHTTPRequests   

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

NSString *watch = [lbl.text substringWithRange:NSMakeRange(23,strL-23)];
NSString *link = [NSString stringWithFormat:@"http://youtube.com/%@",watch];

[request setShouldRedirect:YES]; 
[request setPostValue:watch forKey:@"url"];
[request setPostValue:email1 forKey:@"email"];
[request setPostValue:format forKey:@"format"];
[request setPostValue:quality forKey:@"quality"];
[request setDelegate:self];
[request startAsynchronous];

NSLog(@"%@ %@ %@ %@",watch,email1,format,quality);

click=NO;

}, и это запрос завершен:

- (void)requestFinished:(ASIFormDataRequest *)request{
NSString *responseString = [request responseString];
NSLog(@"%@",responseString);
NSLog(@"%@",lbl.text);
NSLog(@"requested finished");
[ind stopAnimating];
[indView removeFromSuperview];
[setView removeFromSuperview];

}

1 Ответ

6 голосов
/ 19 июля 2011

Вы пытались увеличить значение тайм-аута по запросу? По умолчанию это 10 секунд, вы можете увеличить его, выполнив это прямо перед вызовом startAsynchronous:

[request setTimeOutSeconds:60];
...