NSURL Запросить время ожидания запроса

У меня странная проблема, я работаю над проектом, который я должен запросить с сервера, при запросе URL без использования параметров GET метод, он работает нормально и возвращает нужные данные, но при использовании того же кода для вызова URL и отправив параметры к нему, он потерпит неудачу с этой ошибкой:

error: Error Domain=NSURLErrorDomain Code=-1001 UserInfo=0xed4870 "timed out"

Мой код следующий:

NSString *param = @"pageNumber=2";

NSURL *url = [NSURL URLWithString:@"http://myWebsite/api/Soccor/"];//When using this, it works fine
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myWebsite/api/Soccor?%@", param]];//When using this, it gives me the request time out error.
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest addValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"GET"];
[theRequest setTimeoutInterval:10];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

Любая подсказка, почему он возвращает ошибку при отправке параметров с URL?

1 ответ

Решение

Я бы предложил вам рассмотреть два аспекта запроса:

  1. Вы не показываете нам свои настройки msgLength, но я бы только предложил установить Content-Length заголовок, если вы также используете setHTTPBodyв этом случае вы бы установить Content-Length быть length из NSData вы используете в качестве параметра для setHTTPBody, Но это используется с POST запросы, а не GET Запросы.

  2. Вы указываете application/json для Content-Type запроса, но запрос не состоит из JSON. Если вы сделали это, поскольку ответом является JSON, следует отметить, что это значение заголовка предназначено для вашего запроса, а не для ответа, который вы ожидаете от сервера.

Другие вопросы по тегам