我一直在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