【发布时间】:2012-03-02 22:38:15
【问题描述】:
刚刚修补 Sinatra 并试图让一个安静的 Web 服务运行起来。 不过,我目前遇到的错误非常具体。
以这个post方法为例
post '/postMan/:someParam' do
#Edited here. This code can be anything. 411 is still the response
puts params[:someParam]
end
看起来很简单。获取一个参数,从中创建一个对象,然后以对象保存方法定义的任何方式存储它。
这是我使用 Curl 发布数据的方法
$curl -I -X POST http://127.0.0.1/postman/123456
唯一的问题是,我收到了 411,但不知道为什么。 据我所知,411 是必需的长度。这是痕迹
HTTP/1.1 411 Length Required
Content-Type: text/html; charset=ISO-8859-1
Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-07-09)
Date: Fri, 02 Mar 2012 22:27:09 GMT
Content-Length: 303
Connection: close
我“不能”以任何方式更改 curl 消息。那么有没有人可以设置在 sinatra 中忽略的内容长度?或者一些不涉及更改 curl 请求的修复?
为了记录,我是否使用 Post 方法中的参数都没有关系。我里面可能有一些疯狂的代码,它仍然会抛出同样的错误
【问题讨论】:
-
当您实际发布数据(例如使用
-d key=val)时,您会得到相同的结果吗? -
@nategood 我对 curl 不太熟悉。如果这是正确的 'curl -d key=val 127.0.0.1:4567/postman/123456' 那么响应是默认的 sinatra 404(AKA sinatra 不知道这个小曲)
-
试试
curl -I -X POST -d "key=val" http://127.0.0.1/postman/123456 -
@nategood 响应是““警告:您只能选择一个 HTTP 请求!”,抱歉,这可能是我做错了。
标签: ruby rest post curl sinatra