2016-08-09 5 views
-1

特定のオンライントランザクションを行う既存のレストウェブサービスがあります。 @FormParam型の入力を受け取るために作成されました。このWebサービスを呼び出すと、最初に値をURLに追加して渡しました@FormParam値をHTMLフォームを使用せずにレストサービスに渡す

/sometransaction?creditCardNumber = 123

問題は、番号がURLに追加されるため、Webサーバーのhttp要求ログに記録されるという問題です。これは機密情報なので、これはできません。 HTMLフォームがPOST送信を行うのと同じ方法でこれを渡す必要があります。これは、URLに追加されず、Webサーバーによって記録されるパラメータの順序です。問題は、これを行うためのUIページがないことです。これは基本的に別のWebサービスを呼び出すWebサービスです。

これをどのように達成できますか?

コード:

@POST 
@Path("/dotransaction") 
Public Response doTransaction(@BeanParam TxnParams) { 

} 

その残りのWebサービスクラスTxnParamsが@FormParamが

答えて

0

Content-Typeapplication/x-www-form-urlencodedに設定されていることを確認し、要求ペイロードにデータを送信する属性を持っているのparams。

&を使用してパラメータを区切り、=を使用してパラメータをその値に関連付けます。要求がどのようになるかだ

POST /sometransaction HTTP/1.1 
Host: example.org 
Content-Type: application/x-www-form-urlencoded 

creditCardNumber=4111111111111111&expirationDate=09-2016 

そして常に使用HTTPSワイヤ上の機密情報を送信するとき。

+0

リクエストペイロードにはどのようなものが含まれていますか?ヘッダーには? –

+0

@ lecarpetrondookmarion *要求のペイロード* = *本文* –

+0

前と同じですが違いはコンテンツタイプがURLエンコードされていることですか?正しい? –

関連する問題