0

http 投稿から投稿パラメーターと本文を読み取りたい。

例: http://localhost/controller?sign=trueという URL に投稿する場合。投稿には、本文に json データもあります。

{"transaction": 
    {"user":[
        {"name": "Anna"}]
    }
}

パラメータの取得は public java.lang.String getParameter(java.lang.String name) を介して行われます

そして、本体は public ServletInputStream getInputStream() throws java.io.IOException 経由で取得できます

しかし、どうやってパラメーターと本体の両方を把握するのでしょうか? getInputStream の前に getParameter を呼び出すと、結果は inputStream で -1 になるためです。

4

1 に答える 1

1

getParameter(String name) のカバーの下で、これらのパラメーターを取得するために ServletInputStream が読み取られていると思います。POST データを URL パラメータと混合する場合 (sign=true が取得しようとしているパラメータであると想定しています) HttpServletRequest.getQueryString() を使用して URL パラメータを取得すると、引き続き次のことができるはずです。 getInputStream() で本文を読み取ります。ただし、探している情報を取得するには、おそらくクエリ文字列を解析する必要があります。

編集: ServletInputStream が読み取られると、再度読み取ることができないという元の回答を追加するのを忘れました。ストリームからのデータを複数回使用する必要がある場合は、保存する必要があります。

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

于 2012-04-26T14:12:06.373 に答える