0
我正在開發一個iOS應用程序,其中SoundCloud用戶使用OAuth在web視圖中登錄,然後該應用程序通過Alamofire向SoundCloud API發出HTTP請求。我已成功驗證用戶身份並存儲了他們的令牌(使用ABMSoundCloudAPI),但GET請求https://api.soundcloud.com/me失敗,出現-1005錯誤「網絡連接丟失」。這似乎是iOS中的一個常見問題,正如here所討論的那樣,但重置模擬器並不能解決問題,使用設備時也會出現問題。我也試過:SoundCloud API:GET請求失敗,代碼-1005,使用iOS/Alamofire
- 刪除並重新添加WiFi網絡
- 重試編程請求,如果失敗
- 添加標題爲「連接」:「關閉」
在每種情況下,我都會看到同樣的錯誤。是否有其他標題我應該嘗試?我通過使用的CocoaPods這些庫:
- ABMSoundCloudAPI(0.2.1)
- AFNetworking(2.6.1)
- AFOAuth2Manager(2.2.0)
- Alamofire(3.1.2)
- SwiftyJSON(2.3.1)
這裏是我的代碼:
var retryCount = 0
func getUserInfo(token:String) {
let headers = ["Connection": "Close"]
Alamofire.request(.GET, "https://api.soundcloud.com/me?oauth_token=\(token)", parameters: ["client_id":clientId], encoding: .JSON, headers: headers)
.responseJSON { response in
guard response.result.error == nil else {
print("error calling GET on /me")
print(response.result.error)
if self.retryCount < 2 {
if let token = self.defaults.stringForKey("sc_key_token") {
self.getUserInfo(token)
++self.retryCount
}
}
return
}
guard let value = response.result.value else {
print("Error: did not receive data")
return
}
let user = JSON(value)
print("User info: " + user.description)
}
}
錯誤消息:
Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo={NSUnderlyingError=0x126248c10 {Error Domain=kCFErrorDomainCFNetwork Code=-1005 "(null)" UserInfo={_kCFStreamErrorCodeKey=-4, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://api.soundcloud.com/me?oauth_token=USER_TOKEN, NSErrorFailingURLKey=https://api.soundcloud.com/me?oauth_token=USER_TOKEN, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-4, NSLocalizedDescription=The network connection was lost.}