【问题标题】:Sinatra Returning empty parameters [closed]Sinatra 返回空参数
【发布时间】:2013-08-14 02:23:07
【问题描述】:

我正在运行一个 Sinatra 应用程序,每当我向发布请求发送参数时,一切正常。但是,如果我将参数发送到 get 请求,则不会返回任何内容。

get "/test" do
  puts params
end

在我的服务器上,我返回了{}。我不知道是怎么回事。我在跑步

gem "sinatra", "~> 1.4.3"

使用 Mozilla 的 RESTClient,我插入了正确的 url,其标头名称为 content-type,值为 application/x-www-form-urlencoded

身体由

组成
name=jason

非常感谢我在这里缺少的任何帮助。

【问题讨论】:

  • 您在获取请求时发送了哪些参数?
  • name=jason 使用 RESTClient。
  • 显示您的 RestClient 的确切代码,以便我们尝试重现问题。照原样,您还没有满足 Stack Overflow 对问题的要求。见msmvps.com/blogs/jon_skeet/archive/2010/08/29/…

标签: ruby parameters get sinatra httprequest


【解决方案1】:

任你选:

require 'restclient'

RestClient.get 'http://localhost:9393', 
               {:params => {:id => 50, 'foo' => 'bar'}}

require 'restclient'

RestClient.get 'http://localhost:9393', 
               :params => {:id => 50, 'foo' => 'bar'}

.

require 'restclient'

RestClient.get 'http://localhost:9393', 
               params: {id: 50, foo: 'bar'}

顺便问一下,您是否认为最好在代码不可见时完成故障排除?你最初没有发布你的代码,我要求它,你拒绝给它。你玩捉迷藏的策略是什么?

身体由……组成

GET 请求没有正文。

【讨论】:

  • 当问题模棱两可或不完整时,最好不要尝试回答。您可以浪费时间回答,然后发现 OP 不知道他们在问什么,或者问题写得太糟糕以至于被误解了。不要在答案中投入比 OP 在问题中投入更多的工作。相反,如果您认为该问题值得投票,您可以投反对票,或者投票结束。
  • 我不是在玩捉迷藏,我是在睡觉。另外,我指的不是rest client gem,而是rest client Mozilla 的附加组件。对于那部分,我会承担责任。
  • 但是 get 请求确实允许参数通过,对于 RESTClient,唯一可能的地方是应用程序的主体部分,除非我直接将参数写入 url。不过,我认为这超出了问题的范围。感谢您的帮助。
  • @jason328, But get requests do allow parameters to pass through and for RESTClient, the only place that's possible is in the body portion of the app, unless I was to directly write the parameters into the url. 没错。如果该插件编程正确,当您选择 GET 时,它不会向您显示正文输入元素。
  • @jason328, 你如何指定标题?标题 - >自定义标题?为什么附加组件不向您显示任何地方的实际请求,例如在响应旁边,以便您可以检查请求的实际外观?
猜你喜欢
  • 2013-07-11
  • 2015-01-18
  • 2016-08-31
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多