Время получения запроса истекло - ASIHTTPRequest - предоставлен код - PullRequest
0 голосов
/ 19 февраля 2012

Большую часть времени я получаю failMethod, я получаю сообщение Request timed out и много жаргона в ошибке.Почему это?Есть ли решение для этого?

Я использую ASIHTTPRequest

[self setNetworkQueue:[ASINetworkQueue queue]];
[[self networkQueue] setDelegate:self];
[[self networkQueue] setShouldCancelAllRequestsOnFailure:NO];
[[self networkQueue] setRequestDidFinishSelector:@selector(successMethod:)];
[[self networkQueue] setRequestDidFailSelector:@selector(failMethod:)];    
ASIHTTPRequest *r = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/wenb"]];
[r setUseKeychainPersistence:YES];
[[self networkQueue] addOperation:r];    
[[self networkQueue] go];

Ответы [ 2 ]

3 голосов
/ 19 февраля 2012

Request timed out обычно означает, что на нем написано: что сервер, с которого вы пытаетесь получить данные, слишком долго отвечает, и ваш запрос был прерван (я полагаю, что размещенный вами URL-адрес не является URL-адресом, который вы '' пытаемся достичь).

Есть два решения: желательно выяснить, почему ваши запросы выполняются так долго, потому что ASIHTTPRequest имеет 10-секундный тайм-аут по умолчанию, что довольно долго. Другой, более простой вариант - увеличить время ожидания, скажем, до 30 секунд, что вы можете сделать следующим образом:

[ASIHTTPRequest setDefaultTimeOutSeconds:30]

Возможно, попробуйте выполнить ваши запросы не через телефон, чтобы узнать, сколько времени они занимают, и чтобы лучше понять, в чем проблема.

1 голос
/ 20 февраля 2012

Для меня это зависит от операторов мобильной связи . Я получил ту же проблему, и я проверил на другой сети оператора с использованием одного и того же приложения. Мне кажется, что сетевые провайдеры используют разные типы подключения (прокси). Когда вы просматриваете журналы своего телефона, вы можете увидеть ту же ошибку и в своем почтовом клиенте. Единственное решение - использовать простые NSURLConnection с HTTP методами.

...