1

古い非ブラウザのレガシーhttpクライアントとインターフェイスしている古いhttpサーバー実装の代わりに、playフレームワークを使用してWebアプリケーションを実装しようとしています。

そのクライアントはDelphiで記述されており、リクエストの本文にヘッダー情報を含むデータを直接投稿しています。

私は何かを得るだろうと思った

request.body /* In the play controller */

しかし、そこには何もありません。

以下のコードを参照してください。

public static void uploadPicture() {

        InputStream data = request.body;
    String fx = Play.getFile("").getAbsolutePath()+File.separator+"uploads"+File.separator+"test.jpg";
        File f = new File(fx);
        FileOutputStream moveTo = new FileOutputStream(fx);
        try {
                byte[] b = new byte[4096];
                for (int x = 0; (data.read(b)) != -1;){
                    moveTo.write(b, 0, x);
            }
        } finally{
            moveTo.close();
        }

    } 

編集:私の要点を明確にするために:私は行って、EclipseHttpServletdoPost()メソッドで単純な動的Webプロジェクトを作成しましたrequest.getInputStream()。これには、レガシークライアントから送信されたファイルが含まれています。

Playはリクエストの本文に何かをしています!?

私のオプションは何ですか?

ありがとう。

イルファン

4

1 に答える 1

1

わかりました、それはPlay1.2.4のバグでした。最新バージョン1.2.5をインストールしましたが、すべてがすぐに機能します。

request.bodyコントローラでリクエストの未加工の本文にアクセスできます。

于 2012-11-02T23:00:35.047 に答える