導入
Wechat Payのコールバックリンク要件にはパラメーターが続くことはできないが、返されたXMLデータを受信する必要があることを誰もが知っています。パラメーターで@RequestBodyアノテーションを使用し始め、XMLデータを取得することを望んで、テストに失敗しました。最後に、 HttpServletRequestを使用してデータを正常に取得します。
サンプルコード
@RequestMapping( "/weixinpay/callback")public string callback(httpservletrequest request){inputstream is = request.getInputStream(); string xml = restreamutil.inputStream2string(is、 "utf-8") /***後で、xmlをマップに変換して、データに基づいて論理的に処理します* /} /*** inputstreamストリームは文字列に変換されます* @param instream inputstreamストリーム* @paramエンコードエンコードフォーマット* @return string*/public static string inputstream2string(inputstream instream、string encoding){string result = null; try {if(instream!= null){bytearrayoutputStream outStream = new bytearrayoutputStream(); byte [] tempbytes = new byte [_buffer_size]; int count = -1; while((count = instream.read(tempbytes、0、_buffer_size))!= -1){outstream.write(tempbytes、0、count); } tempbytes = null; outstream.flush(); result = new String(outstream.tobytearray()、エンコード); }} catch(例外e){result = null; } return result;}要約します
上記は、この記事のコンテンツ全体です。勉強や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。