Tag: curl

使用Ruby Curb传递GET参数

我正在尝试使用Curb(curb.rubyforge.org)来调用需要在get请求中提供的参数的RESTful API。 我想获取像http://foo.com/bar.xml?bla=blablabla这样的url。 我希望能够做类似的事情 Curl::Easy.perform(“http://foo.com/bar.xml”, :bla => ‘blablabla’) {|curl| curl.set_some_headers_if_necessary } 但到目前为止,我能看到的唯一方法是在URL中手动包含?bla=blablabla并自己进行编码。 当然有一种正确的方法可以做到这一点,但我无法弄清楚阅读文档。

使用真实性令牌? 或者禁用它?

我的迷你网络设备会将数据样本提交给RoR应用程序,该应用程序会将它们添加到MySQL表格中。 我想出了如何形成POST数据包,但我没有得到的是如何避免真实性 – 令牌问题。 我的小哑客户有没有办法获取正确的令牌并将其发回? (我猜不是,或者它不是一个安全function)。 这不是一个高度安全性敏感的应用程序,所以我应该告诉这个页面完全忽略认证令牌吗? 希望通过每个客户端(Web设备)使用唯一的用户ID和密码登录这一事实进行身份validation,因此它将受到会话ID的保护。 如果我使用“松散”语言,请随时纠正我。 我是部署网站的新手。 Keb’m

404使用curl将JSON发送到RoR时

我对RoR很新,而且我正在学习。 话虽如此,我正在尝试解析从Formstack发送到我的脚本的POST请求。 我可以通过转到它的URL来查看和运行脚本,它工作正常,当我将Formstack中的Webhook指向URL时,没有任何反应。 我从命令行运行下面的curl请求,它返回404错误。 curl -H “Content-Type: application/json” -d ‘{“FormID”:”1234″,”UniqueID”:”1234″,”Name”:{“first”:”John”,”last”:”Smith”},”Email”:”test@gmail.com”,”Phone”:”(555) 555-555″,”Company”:”Test Company”}’ -X POST “http://scripturl.com” 我检查了requestb.in发送的数据,一切都正常发送。 那么为什么在发送JSON数据时它会返回404错误,但是当我在浏览器中查看它时运行得很好? 我的示例代码如下。 firstName = params[:Name][“first”] lastName = params[:Name][“last”] email = params[“Email”] company = params[“Company”] phone = params[“Phone”] client.create(‘contact’, firstname: firstName, lastname: lastName, emailaddress1: email, subject: “Test”, companyname: company, mobilephone: phone) 这是log / production.log的内容: rack (1.6.4) lib/rack/sendfile.rb:113:in `call’ railties (4.2.3) […]

Rails:如何将文件从S3发送到远程服务器

我一直在打猎,似乎无法找到一个好的解决方案。 My Rails应用程序将其文件存储在Amazon S3中。 我现在需要将它们发送到远程(第三方)服务。 我正在使用RestClient发布到第三方服务器,如下所示: send_file = RestClient::Request.execute( :method => :post, :url => “http://remote-server-url.com”, :payload => File.new(“some_local_file.avi”, ‘rb’), :multipart => true, etc…. ) 它适用于本地文件,但如何将S3中的远程文件直接发送到此第三方服务? 我在这里找到了一个答案,其中有人使用open-uri: ruby从S3读取带有open-URI的文件 我为自己测试了它,并且它有效。 :payload => open(URI.parse(“http://amazon-s3-example.com/some_file.avi”)) 但是,我在这里读到一条评论说open-uri只是将远程文件加载到内存中。 请参阅此答案的最新评论: https : //stackoverflow.com/a/264239/2785592 这不太理想,因为我正在处理潜在的大型video文件。 我还读过RestClient甚至将本地文件加载到内存中的某个地方; 再次,这不是理想的。 有谁知道这是真的吗? 当然,我不能成为唯一有这个问题的人。 我知道我可以在发送之前在本地下载S3文件,但我希望节省时间和带宽。 此外,如果RestClient确实将本地文件加载到内存中,那么在本地下载它并不能保存任何东西。 嘿嘿 任何建议将不胜感激。 谢谢 :) 更新:远程服务器只是一个响应发布请求的API。 我没有能力改变他们的结果。

帮我将这个CURL转换为Rails中的Post方法

我试图将XML发布到API,它返回一个XML。 我通过执行一个简单的CURL命令成功地做到了这一点 curl “http://my.server.com/api/identity/emails_from_ids” –proxy dvaic.snv.fex:80 -d “3434” -X POST -H ‘Content-Type: application/xml’ -u admin:admin 上述命令执行成功。 我现在想用Rails做同样的事情。 怎么做? 我浏览了Net :: Http文档,但我无法解释它。 谢谢

测试rails葡萄API与curl,params数组

我使用curl手动测试我的rails应用程序葡萄API。 我想发送一个[1,2,3]数组作为请求查询参数,以便可访问,如: p params[:tickets_ids] => [1,2,3] 我只发现了如何发送被解释为哈希的东西的线索。 我将非常感谢如何使用curl发布数组。

使用curl测试Rails路由

我有一个名为用户的模型,我想使用API​​进行更新。 我认为这样做的方法是创建更新路由并插入执行更新的代码。 我使用RSpec创建了一个测试,它似乎工作,但是,我想实际看到我的数据库中更改的数据,所以我试图使用curl来更新我的开发数据库。 我试过这个命令 curl -X PUT -d “attribute1 = value1, attribute2 = value2” http://localhost:3000/users/1 但是我收到了一个错误 Action Controller: Exception caught . . . NoMethodError in UsersController#update You have a nil object when you didn’t expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.[] . . . Heres是routes.rb中的相关行 resources […]

Stripe Connect – 检索访问令牌

我正在尝试为rails 3.2.13 app设置Stripe Connect。 我已将用户定向到Stripe并从Stripe接收了授权代码: HTTP/1.1 302 Found Location: http://localhost:3000/yourshop/stripe?scope=read_write&state=1234&code=AUTHORIZATION_CODE 下一步是根据Stripe文档,通过access_token_url发出POST请求以接收access_token: curl -X POST https://connect.stripe.com/oauth/token \ -d client_secret=sk_test_code \ -d code=AUTHORIZATION_CODE \ -d grant_type=authorization_code 我对curl没有任何经验是一个rails应用程序,我在Stripe API中找不到任何似乎这个POST请求包含在Stripe Gem中的东西: gem文件: gem ‘omniauth-stripe-connect’ gem ‘stripe’ 模型 def save_with_stripe_account code = self.stripe_code customer = curl -X POST https://connect.stripe.com/oauth/token \ -d “client_secret=ENV[‘STRIPE_SECRET_KEY’]” \ -d “code=code” \ -d “grant_type=authorization_code” raise customer.inspect […]

curl命令行POST

我正在尝试模拟我的简单Rails脚手架Web服务的POST。 脚手架创建的文件尚未更改。 当我从网站表单发布数据时,会正确创建记录。 当我尝试使用curl进行POST时,会在数据库中创建一条记录,但它在字段中具有NULL值,但“updated_at”和“created_at”除外。 我是命令行curl的新手,所以我可能没有正确地做到这一点。 curl -d “name=Gazoo&friend=Rubble” localhost:3000/flintstones 我从WEBrick那里得到了这个: 开始POST“/ flintstones”for 127.0.0.1 at Thu Apr 28 18:04:47 -0600 2011 Processing by FlintstonesController #create as Parameters:{“name”=>“Gazoo”,“friend”=>“Rubble”} AREL (0.3ms)INSERT INTO“flintstones”(“name”,“friend”,“created_at”,“updated_at”)VALUES(NULL,NULL,’2011-04-29 00:04:47.779902’,’2011-04- 29 00:04:47.779902’)重定向到http:// localhost:3000 / flintstones / 4 为json做了GET之后 curl localhost:3000 / flintstones.json 我收到: [{ “打火石:{” 名称 “:NULL,” created_at “:” 2011-04-29T00:09:58Z”, “的updated_at”: “2011-04-29T00:09:58Z”, “ID”:4, “朋友”:空}}] 为什么我的字段中为空? […]

request.format return * / *

我目前正在为RoR上的应用程序开发API 作为一个例子,我创建了一些XML,加载了创建对象所需的所有信息,让我们说一个Person,并使用Curl我将它提交给我的应用程序 我能够从控制器中调用我想要的创建操作,并正确传递对象的哈希参数 但是现在我需要应用不同的行为,如果请求是否与XML有关,困扰我的是为什么在控制器request.format给出*/* 。 有什么线索吗? curl -v -H “Content-Type: application/xml; charset=utf-8” –data-ascii @client.xml http://foo.com:3000/clients?api_key=xxx def create logger.debug request.format # produces “*/*” if request.format.xml? # never gets here end end