2015-01-15 60 views
2

我正在使用Alamofire發出從Heroku上運行的Rails應用程序返回JSON的HTTP請求。使用Alamofire時出現Heroku「請求中斷」錯誤

做一個HTTP GET電話時,我得到這個NSError客戶端:

Error Domain=NSURLErrorDomain Code=-1005 "The operation couldn’t be completed 
(NSURLErrorDomain error -1005.) 
" UserInfo=0x1700e6a00 
    { 
    NSErrorFailingURLStringKey=https://********.herokuapp.com/api/workouts.json, 
    NSErrorFailingURLKey=https://********.herokuapp.com/api/workouts.json, 
    _kCFStreamErrorDomainKey=4, 
    _kCFStreamErrorCodeKey=-4, 
    NSUnderlyingError=0x17025c920 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1005.)" 
    } 

錯誤-1005是一個kCFURLErrorNetworkConnectionLost

在Heroku的日誌中我得到:

heroku[router]: sock=client at=error code=H18 
desc="Request Interrupted" 
method=GET path="/api/workouts.json" 
host=********.herokuapp.com 
request_id=826f4f74-a497-4462-a70b-cc5d352ef7b4 
fwd="162.246.8.76" 
dyno=web.1 connect=1ms service=0ms status=503 bytes=0 
2015-01-15T03:30:15.428551+00:00 app[web.1]: 
Started GET "/api/workouts.json" 
for 162.246.xxx.xxx at 2015-01-15 03:30:15 +0000 

的重要組成部分,要注意的是sock=client這意味着請求在客戶端的請求中斷。

其他終端,如sign_insign_up返回200 OK與預期的有效載荷。所以Rails應用程序正在研究其他端點。

另外,還要注意捲曲的作品在命令行預期:

curl -X GET 'https://********.herokuapp.com/api/workouts.json?email=****&token=****' 
+0

這是否成功?看起來像我有完全相同的問題。 –

回答

1

也許這會幫助別人:在我的情況,我會發送一個空的字典作爲參數,誤:

var dictParams  = [String: String]() 

Manager.sharedInstance 
     .request(.GET, "\(K_API_MAIN_URL)\(k_API_XXXXXX)?access_token=\(strToken)", parameters: dictParams, encoding: .JSON) 

解決方案是發送零而不是上述dictParams。

Manager.sharedInstance 
     .request(.GET, "\(K_API_MAIN_URL)\(k_API_XXXXXX)?access_token=\(strToken)", parameters: nil, encoding: .JSON) 
相關問題