2015-02-07 27 views
2

我已經訂閱了基於靜態IP(適用於Live和測試)提供訪問的API服務。使用代理的Rails應用程序調用API

由於我的開發區域ISP不提供靜態IP,因此我啓用了API訪問我的登臺機器IP,這是靜態的。我安裝了squid並在我的登臺服務器中啓用/設置了代理服務器,以便我可以將其用作代理,並在開發時調用API。

我爲我的開發和網絡>代理設置使用Mac無法在系統範圍內(終端)工作。由於這個原因,我正在使用MacProxy的試用版本,代理(代理客戶端),並且一切正常,直到試用過期。 Mac有沒有免費的替代品?

我試圖通過創建ssh socks代理和設置http_proxy =「xxx」來設置代理。在終端。當我使用curl ipecho.net/plain檢查終端IP發佈設置時;回聲,它顯示正確的IP,但是當我運行本地軌道開發服務器,並試圖訪問該API,其拒絕呼叫與無效IP(它顯示非代理IP)

+0

你如何連接到API服務?你在使用net/http庫嗎? – coderhs 2015-02-18 03:20:36

+0

我實際上試圖使用Gem(hotel_beds)來連接API,它在內部使用Savon gem來使用http連接。我假設在net/http上實現了savon。 – Umesh 2015-02-18 19:19:32

回答

0

一個免費的替代方案,可能解決您的問題可能是項目在GitHub上:

sshuttleread me

它轉發TCPDNS請求遠程SSH服務器。

最基本的用法sshuttle的是這樣的:

./sshuttle -r [email protected] 0.0.0.0/0 -vv 

隧道所有的流量,你可以做:

./sshuttle --dns -vr ssh_server 0/0 

也有可用的here輔助功能,它可以simpify一些命令。

+0

感謝您的建議,但oresent sshuttle不會與優勝美地合作。將嘗試這個職位,他們解決與ipfw的問題。 – Umesh 2015-02-25 16:03:07

0

系統級代理設置不被ruby應用程序使用。通常,這是傳遞給您用來建立連接的庫的代碼級選項。

如果你想薩翁使用代理,那麼你需要在創建客戶端這個傳遞給薩翁:

client = Savon.client(proxy: "http://example.org", ...) 

如果這一調用的寶石裏面做,那麼除非創業板已經提供了選項,那麼你需要分叉它添加選項

你提到的寶石似乎已經實現了這一點 - 它是configuration類有一個代理屬性,似乎傳遞給savon。

+0

我試過了,但它似乎壞了。由於我更關注自己的應用程序開發,因此想到是否有任何簡單的方法來設置Rails應用程序代理(這是免費的。Macports,Proxifier等都付費但是有效),本來可以做得更好,也可以用於「更廣泛的受衆」,他們希望在代理服務器之後運行任何rails應用程序,無論是檢查net/http還是gems實現。我會按照你提到的嘗試分叉它並嘗試修復它。 – Umesh 2015-02-25 16:07:24

相關問題