2012-11-27 67 views
0

我正在做一些簡單的RSS解析和渲染 - 在Heroku上完美地處理本地主機和生產,但由於某些原因,這個特定的RSS源僅在本地主機上工作,但在Heroku中部署時不起作用。Heroku上的RSS解析錯誤

這裏是RSS提要:

http://careers.joelonsoftware.com/jobs/feed?tags=network 

這裏是我得到在Heroku上的錯誤:

A ActionView::Template::Error occurred in jobs#index: 
503 Service Unavailable 
/usr/local/lib/ruby/1.9.1/open-uri.rb:346:in `open_http' 

這裏是我的代碼:

@rss = RSS::Parser.parse(the_rss_feed, false) 
render :partial => "layouts/rss_syndicated_jobs", :locals => {:rss => @rss} 

我需要:

require 'rss/2.0' 
require 'open-uri' 

這似乎是一個完全有效的RSS源 - 再一次,在localhost上工作正常 - 但在Heroku中部署時沒有....任何想法?

回答

1

該域名不喜歡使用HTTP GET請求的heroku服務器。

從Heroku的

➜ deefour ✗ heroku run "curl -s -D - careers.joelonsoftware.com/jobs/feed -o /dev/null" 
Running `curl -s -D - careers.joelonsoftware.com/jobs/feed -o /dev/null` attached to terminal... up, run.9211 
HTTP/1.0 503 Service Unavailable 
Cache-Control: no-cache 
Connection: close 
Content-Type: text/html 

從本機

➜ deefour ✗ curl -s -D - careers.joelonsoftware.com/jobs/feed -o /dev/null 
HTTP/1.1 200 OK 
Cache-Control: private, max-age=1800 
Content-Type: application/rss+xml; charset=utf-8 
Expires: Tue, 27 Nov 2012 02:46:38 GMT 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Methods: POST, GET, OPTIONS 
Access-Control-Allow-Headers: x-requested-with 
Access-Control-Max-Age: 60 
Date: Tue, 27 Nov 2012 02:16:38 GMT 
Content-Length: 10982 

如果通過Heroku的打印響應體它提供了以下信息

此IP是唯一允許訪問我們的API。 爲保護我們的用戶,我們無法處理來自此IP地址的請求。 如果您認爲自己錯誤地訪問了此頁面,請與我們聯繫。

+0

太棒了 - 上帝知道你剛剛救了我多少時間。 – cman77

+0

我可以問你是怎麼做到的「如果你通過Heroku打印響應體,它提供了以下信息」 – cman77

+0

是的,只是不要使用curl命令中的任何標誌。只需做'heroku運行「curl careers.joelonsoftware.com/jobs/feed」'。 'heroku run'將運行鍼對heroku實例的任意shell命令*(儘管並非所有東西都被支持/允許/可用)* – deefour