2

POSTAndroidから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>

面白いことに、これらのデータはparamsコントローラーのフィールドに表示されません。Webrickは解析エラーを出力しません。POST(そして、データが添付されていない状態でを受信した場合、エラーが発生すると思います。

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

request.envまた、変数にデータの痕跡は見つかりませんでした。実際、HTTP_BODYダンプフィールドには何も表示されません。リクエストの生の本文をどのように見ることができますか?webrickは、POSTデータが添付されていない状態でを受信した場合、本当に文句を言うことはありませんか?

4

1 に答える 1

2

request.envデータをIOオブジェクトとして表示するため、xmlを直接表示することはできません。

request.raw_post生データを返す必要があります。

Railsがxmlをparamsハッシュに直接解析しようとするためには、リクエストのコンテンツタイプをapplication/xmlに設定する必要があります。「xmlとして処理する」ということは、railsがxml応答をレンダリングしようとすることを意味し、投稿されたデータの形式とは必ずしも関係がありません。

于 2012-12-14T16:44:19.927 に答える