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.}