Ruby on rails Rails未从HTTP请求获取参数

Ruby on rails Rails未从HTTP请求获取参数,ruby-on-rails,Ruby On Rails,我正试图将以下数据从Android发布到Rails服务器(运行在WebRick上) <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <data> <email>email.test@name.com</email> <password>APassw0rd</password> <remember_me>1</remember_me

我正试图
将以下数据从Android发布到Rails服务器(运行在WebRick上)

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<data>
  <email>email.test@name.com</email>
  <password>APassw0rd</password>
  <remember_me>1</remember_me>
</data>

我在
request.env
变量中也没有找到数据的痕迹。实际上,我在dump字段中没有看到
HTTP\u BODY
。如何才能看到请求的原始内容?如果webrick收到一个没有附加数据的
帖子,它真的不会抱怨吗?

请求。env
会将数据显示为IO对象,这样您就无法直接查看xml

request.raw\u post
应返回原始数据


为了让rails尝试直接将xml解析为params散列,您需要将请求的内容类型设置为application/xml。“作为xml处理”意味着rails将尝试呈现xml响应,而不一定与发布数据的格式有任何关系

您当然可以发送一个没有附加数据的POST请求。我不太熟悉XML的东西,但如果可能的话,你能从webrick发布你的日志吗?你真的点击了正确的控制器操作吗?我点击了正确的控制器(我在那里放置了一个断点),我可以转储request.env以查看请求的所有字段。除了丢失的数据外,一切都很好。只是在帖子中添加了webrick日志。看看你得到的500个错误,这意味着你的控制器操作在某个地方崩溃了。你能把那个片段贴出来吗?谢谢你的回答。我在请求中将“Content Type”设置为“application/xml”。您确定数据发布正确吗?(例如,可能使用tcpdump或类似工具来捕获发送的字节)好的,我尝试将HTTP头从
application/xml
更改为
application/x-www-form-urlencoded
,我可以在rails控制器中看到数据。看。那么现在,为什么webrick放弃了整个东西而不解析它呢?它需要什么格式的/HTTP头?我认为rails只会解析与activerecord对象上的xml生成类似的xml。不过不确定
Started POST "/users/sign_in.xml" for 192.168.1.94 at 2012-12-14 17:33:20 +0100
Processing by Users::SessionController#create as XML
Completed 500 Internal Server Error in 22643ms