[英]Alamofire request fails with nil response
我收到了大量使用 Alamofire 5.3 的失敗請求,其中響應對象本身為零,或者錯誤是“無法解析響應”。 我可以從服務器日志中看到所有這些請求都返回有效。
這是我的設置:
API 管理器類:
let config = Alamofire.Session.default.session.configuration
self.session = Alamofire.Session(configuration: config, interceptor: AccessTokenInterceptor())
訪問令牌攔截器:
class AccessTokenInterceptor: RequestInterceptor {
func adapt(_ urlRequest: URLRequest, for session: Alamofire.Session, completion: @escaping (AdapterResult<URLRequest>) -> Void) {
var adaptedRequest = urlRequest
adaptedRequest.setValue("application/json", forHTTPHeaderField: "Accept")
adaptedRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
if let token = SettingsManager.shared.userToken {
adaptedRequest.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
}
completion(.success(adaptedRequest))
}
}
此攔截器從SettingsManager
插入我的身份驗證令牌
我還使用 URLRequestConvertible 的標准路由器,其中編碼由 JSON 序列化(字典)或 Codable 協議(對象)完成
case .login(let body):
request.httpBody = try JSONSerialization.data(withJSONObject: body, options: [])
case .register(let object):
request.httpBody = try JSONEncoder().encode(object)
奇怪的是,我不認為我在做任何與我使用 Alamofire 的其他時候不同的事情,現在我提出的第一個請求失敗了,但接下來的請求成功了。 如果我刪除攔截器,則沒有任何變化。
如果我檢查傳出的標頭或正文內容,一切看起來都很正常,但 Alamofire 的響應為零。
更新:通過使用 OS_ACTIVITY_MODE 和 iOS 13,我能夠看到它在抱怨請求標頭和協議。 服務器在 Elastic Beanstalk 上,所以我一直試圖弄亂 SSL 策略,但每次第一個請求仍然失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.