Это ошибка на стороне сервера - вероятно, 500 или 502, но, возможно, что угодно.Если вы напечатаете код ошибки, вы, возможно, узнаете немного больше.
Кроме того, по умолчанию NSURLSession сбрасывает соединение, когда возвращает код ошибки, но можно указать, что нужно извлечь данные страницы ошибок.(который может содержать еще больше информации о том, что пошло не так).
Чтобы сделать это, добавьте метод делегата к делегату сеанса, например,
- (void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition
disposition))completionHandler {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)httpResponse;
// For server errors or success status, fetch the response body, else cancel.
if (httpResponse.statusCode >= 500 && httpResponse.statusCode <= 599) {
completionHandler(NSURLSessionResponseAllow);
} else if (httpRepose.statusCode == 200) {
completionHandler(NSURLSessionResponseAllow);
} else {
completionHandler(NSURLSessionResponseCancel);
}
}
Конечно, вам также придетсясоздать и сохранить сеанс (поскольку сеанс по умолчанию не имеет делегата).