Отправка запроса POST на наш сервер NGINX хорошо работает с URLRequest
и URLSession.shared.dataTask
.Я могу войти в свое приложение, но когда я пытаюсь выполнить запрос GET, на моем сервере не регистрируется, что запрос дошел до него.Наконец я получаю ошибку тайм-аута.Важно, я использую https.Я также пытался использовать http для GET-запросов.на моем сервере NGINX я установил TLS только на 1,2 (я не системный специалист, я сделал это в файле nginx cfg.
Error Domain = NSURLErrorDomain Code = -1001 "Zeitüberschreitung bei der Anforderung."UserInfo = {NSUnderlyingError = 0x60400005abe0 {Домен ошибки = kCFErrorDomainCFNetwork Code = -1001" (ноль) "UserInfo = {_ kCFStreamErrorCodeKey = -2102, _kCFStreamErrorDomainKey = 4}* _kCFStreamErrorDomainKey = 4, _kCFStreamErrorCodeKey = -2102, NSLocalizedDescription = Zeitüberschreitung bei der Anforderung.}
Я уверен, что мой код для URLRequest
и URLSession
правильный, так как для локального хоста и локального хостаУ меня нет никаких проблем.
Это мой код для создания моего URLRequest
private func buildUrlRequest(jsonObject:[String: Any], connectionType:ConnectionTypes, url:String) -> NSMutableURLRequest? {
let jsonDataSerialized:Data
do {
jsonDataSerialized = try JSONSerialization.data(withJSONObject: jsonObject)
} catch {
return nil
}
var request:NSMutableURLRequest
if nextData {
request = URLRequest(url: URL(string: self.nextRequestPage)!) as! NSMutableURLRequest
} else {
let tString = self.mBaseUrl + url
if let encoded = tString.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed),
var finalurl = URL(string: encoded)
{
if connectionType == .GET {
var tString:String
tString=finalurl.absoluteString
tString = tString.replacingOccurrences(of: "https", with: "http")
finalurl = URL(string:tString)!
}
request = URLRequest(url: finalurl) as! NSMutableURLRequest
} else {
return nil
}
}
request.httpMethod = connectionType.rawValue // i am using enum here
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("no-cache)", forHTTPHeaderField: "Cache-Control")
request.httpBody = jsonDataSerialized
if mUser != nil && mUser.getSessionId() != nil {
request.addValue("Token " + mUser.getSessionId()!, forHTTPHeaderField: "Authorization")
}
request.cachePolicy = .reloadIgnoringLocalAndRemoteCacheData
request.timeoutInterval = 30.0
return request
}
Вот как я создаю задачу ... после тела методаиспользуя task.resume()
let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in .... (and so on)
Я трачу больше часа, чтобы решить эту проблему ... Но я понятия не имею. Я не уверен, если Pпроблема в конфигурации сервера или в коде Swift ...