2011-08-10 28 views
0

我在myapp.heroku.com上構建了一個web應用程序,其中「myapp」實際上是heroku生成的隨機名稱。當我用我的網絡瀏覽器打它時,它就可以工作。當我用Ruby REST的客戶打它(寶石其餘客戶端1.6.3版本),如下所示:Heroku App:RestClient :: InternalServerError

irb(main):024:0> response=RestClient.get "http://myapp.heroku.com" 

它擲骰子了下列要求:

RestClient::InternalServerError: 500 Internal Server Error 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client- 1.6.3/lib/restclient/abstract_response.rb:48:in `return!' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:228:in `process_result' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:176:in `block in transmit' 
    from C:/Ruby192/lib/ruby/1.9.1/net/http.rb:627:in `start' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:170:in `transmit' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:64:in `execute' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient/request.rb:33:in `execute' 
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/rest-client-1.6.3/lib/restclient.rb:68:in `get' 
    from (irb):24 
    from C:/Ruby192/bin/irb:12:in `<main>' 

當我使用同一個客戶提供更好的如http://www.google.com或http://www.heroku.com這些已知的網址,它可以很好地工作,URL下載的內容都很好。當我使用運行在「http:// localhost:3000」的應用程序版本的相同客戶端時,它也可以正常工作。

我是否在我的休息客戶端客戶端缺少某些東西,從而阻止它從託管在heroku.com上的應用程序獲取數據?

============編輯====其他信息===========

睡在它之後,我想:

irb> require 'net/http' 
irb> NET::HTTP.get_print URI.parse "http://myapp.heroku.com" 

它工作正常。

回答

0

我瘋狂。

在檢查「heroku日誌」時,我在代碼中發現了一個異常,導致了500錯誤。例外是因爲heroku中的PG數據庫和我的本地SQLite3數據庫之間的類型轉換不同。一旦我修好了,一切都進展順利。我懷疑500錯誤也導致我的網站暫時無法訪問,這就是爲什麼我的網站託管的子域沒有返回任何內容。

故事的道德?休息客戶的作品。 Heroku的作品。 Rest-client(IMO)不應該爲500引發異常,而只是返回HTTP響應代碼並讓應用程序處理它。但是,如果我抱怨更多,我還必須叉&修復...

+0

故事的寓意是使用postgres本地開發:) –

+1

我很想在本地使用PG,但我還沒有想出如何通過Windows將它連接到Ruby。 –

0

這裏可能有很多原因;

如果您使用單個測試儀,它會發出請求,但它會返回到該站點,但沒有可用於處理該請求的測功器,因此超時。

可能會出現服務器無法通過外部地址回覆自己的情況,但我認爲情況並非如此,更可能是測試儀問題?

John。

+0

我的其他客戶端客戶端軟件正在我的電腦上運行。我正在使用單個測功機,但是當我使用網絡瀏覽器打開應用程序時,它工作正常。另外,我的休息客戶端客戶端可以很好地與其他網站一起工作。只是不是我的英雄應用程序。 –

相關問題