Çok miktarda API gerektiren bir Swift projesinde çalışıyorum. Her şey iyi çalışıyor ama bazen (20'de 1), API'yi çağırırken Code=-1001 "The request timed out."
hata alıyorum.Kod = -1001 "İstek zaman aşımına uğradı."
Alamofire kullanıyorum. API'yi çağırmak için kodu ekliyorum.
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = myUrlContents.dataUsingEncoding(NSUTF8StringEncoding)
request.timeoutInterval = 15
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("\(myUrlContents.dataUsingEncoding(NSUTF8StringEncoding)!.length)", forHTTPHeaderField: "Content-Length")
request.setValue("en-US", forHTTPHeaderField: "Content-Language")
Alamofire.request(request)
.validate()
.responseJSON { [weak self] response in
if response.result.isSuccess {
if let result = response.result.value {
print("Result: \(result)")
completion(result: result as! NSDictionary)
}
}
else {
print(response.debugDescription)
}
}
Ve günlük
[Request]: <NSMutableURLRequest: 0x18855620> { URL: http://....... (url)}
[Response]: nil
[Data]: 0 bytes
[Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSErrorFailingURLStringKey=http://.....(url) NSErrorFailingURLKey=http://.....(url), NSLocalizedDescription=The request timed out., _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x18a08900 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102}}}
[Timeline]: Timeline: { "Request Start Time": 493582123.103, "Initial Response Time": 493582138.254, "Request Completed Time": 493582138.254, "Serialization Completed Time": 493582138.256, "Latency": 15.151 secs, "Request Duration": 15.151 secs, "Serialization Duration": 0.002 secs, "Total Duration": 15.153 secs }
olduğunu ben hatayı önlemek için zaman aşımı süresini artırabilir biliyorum. Ama hatayı attığının gerçek sebebini bilmek istiyorum. API'mın hiçbiri verileri döndürmek için 2 saniyeden uzun sürmez. Öyleyse neden 15.151 saniye gecikme gösteriyor.
Arka uçta LAMP yığını kullanıyorum. Herhangi bir yardım takdir edilecektir.
İstemcinin sunucunuzda alınma isteğini görüyor musunuz? Sunucu bunu işlemek ne kadar sürer? –
Her defasında aynı URL'ye mi basıyorsunuz? Uygulamanızla ilgili bir sorun olduğunu görünmüyor. Muhtemelen API'nizin yavaş olduğu bir senaryonuz var. –
Bu isteği bir REST istemcisinde yapmaya çalıştınız mı? Zaman aşımı var mı? – quant24