저는 많은 API를 소비해야하는 Swift 프로젝트를 진행하고 있습니다. 모든 것이 정상적으로 작동하지만 때로는 (1 : 20) API를 호출하는 중에 Code=-1001 "The request timed out."
오류가 발생합니다.코드 = -1001 "요청 시간이 초과되었습니다."
저는 Alamofire를 사용하고 있습니다. 나는 API를 호출하는 코드를 첨부하고있다.
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)
}
}
그리고 로그가
[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 }
이다가 나는 오류를 방지하기 위해 제한 시간을 늘릴 수 있습니다 알고 있습니다. 그러나 나는 왜 그것이 오류를 던지고 있는지 실제 이유를 알고 싶다. 내 API 중 어느 것도 데이터를 반환하는 데 2 초 이상 걸리지 않습니다. 그렇다면 15.151 초의 지연 시간을 보이는 이유는 무엇입니까?
백엔드에 램프 스택을 사용하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.
서버에서 시간 초과 요청을 수신 했습니까? 서버가 처리하는 데 얼마나 오래 걸립니까? –
매번 정확하게 동일한 URL을 누르십니까? 내게는 앱에 문제가있는 것 같지 않습니다. 아마 API가 느린 시나리오가 있습니다. –
REST 클라이언트에서이 요청을하려고 했습니까? 시간 초과 되었습니까? – quant24