2012-04-26 7 views
0

ポストパラメータと本文をhttpポストから読みたい。Java:HTTP POSTからパラメータと本文を取得する

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

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

は、パラメータは

と体が 公共サーブレット入力のgetInputStream()経由で取得することができますは、java.ioをスロー 公共java.lang.StringでのgetParameter(java.lang.Stringで名)を介して行われましょう.IOException

しかし、あなたはどのようにパラメータとボディの両方を保持しますか? getInputStreamの前にgetParameterを呼び出すと、結果はinputStreamで-1になるためです。

答えて

1

私はgetParameter(String name)のカバーの下で、これらのパラメータを取得するためにServletInputStreamが読み取られていると考えています。 POSTパラメータとURLパラメータを混在させる場合は、HttpServletRequest.getQueryString()を使用してURLパラメータを取得してください。 getInputStream()で本体を読み込みます。しかし、あなたが探している情報を得るために、おそらくクエリ文字列を解析する必要があります。

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

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

+0

CONTENT_TYPE = "アプリケーション/ x-www-form-urlencodedで uc.setDoInput(TRUE); uc.setDoOutput(TRUE); は私の問題を解決しました。 – JavaHacker

関連する問題