我一直在Rails 3.2中使用Rails控制檯,並使用Nokogiri生成XML文件。從這裏,我需要發佈到外部API來獲取一些數據並在我的應用程序中返回。最終這個代碼將是控制器的功能,但現在我一直在控制檯中進行試驗。將XML發佈到外部API - 在Rails中使用cURL
我生成並與引入nokogiri和我指定的參數的XML文件,我使用下面的命令存儲輸出:
File.open('results.xml', 'w') {|f| f.write(results)}
從這裏,我想張貼此文件到外部API。我使用的命令將其保存在我的應用程序的/ public目錄中。從這裏,我不確定如何用cURL訪問它。
我試圖把它放在一個視圖目錄中,並設置一個路由,所以我可以獲取文件,我至少可以訪問它。以下是我在捲曲(注意,Rails服務器在運行的時候和下面的API路徑是由例如目的)嘗試:
curl -X POST -v --data-ascii http://localhost:3000/search/postresults.xml http://APIPATH/example.php
這一個已經被折騰我了一段時間,當我嘗試,我得到一個錯誤說:
SyntaxError: (irb):5: syntax error, unexpected tCONSTANT, expecting keyword_do or '{' or '('
curl -X POST -v --data-ascii http://local...
^
(irb):5: syntax error, unexpected tUMINUS, expecting keyword_do or '{' or '('
curl -X POST -v --data-ascii http://localhost:...
^
(irb):5: syntax error, unexpected tLABEL, expecting keyword_do or '{' or '('
...l
-X POST -v --data-ascii http://localhost:3000/search/postr...
... ^
(irb):5: unknown regexp options - lcalht
我已經嘗試了所有的標準故障排除(安裝捲曲 - 版本0.0.9,服務器正在運行,捲曲在我的Gemfile等),所以任何幫助非常感謝。謝謝!
非常感謝,這就是我一直在尋找的!我沒有在Rails中使用cURL,所以我盡力而爲。我正在使用的API是一團糟,絕對不是很RESTful,所以我使用了ActiveResource :: Connection。 – ryan508 2012-02-12 06:32:06
如果你進入Gems,請查看HTTParty。您也可以將您的api調用包裝在ActiveModel中,並實現大量ActiveRecord功能。 – 2012-02-12 14:25:00