私はSinatraアプリケーションを使用してサーバーリクエストを受信しています。これらを別のクラスで解剖したいのですが、私は「リクエスト」と呼んでいますが、リクエストオブジェクトを渡すとボディが落ちます。メインクラスのrequest.bodyを読み込もうとしましたが、新しいクラスでそれを読み取ろうとすると、JSONparserオクテットエラーが生成されます。私は以下のコードで要求クラスに要求を渡し、後Sinatraではリクエストボディを他のクラスに渡す方法はありますか?
puts JSON.parse request.body.read
:メインシナトラファイルで
は、このテスト・コールは、正しい応答を生成します。
req=Request.new(request)
しかし、Requestクラスの初期化デフで、同じ「プット」のコードは、上記のエラーを生成します。
JSON::ParserError - A JSON text must at least contain two octets!:
両方のファイルは、JSONの要件が含まれます。
回避策はかなりシンプルですが、私が期待したとおりに動作しない理由を理解することができれば、より洗練された解決策が好まれます。どのような考えが評価されます。
私はSinatraがクラスで身体を要求するのに問題があったとは思わなかった。 –