แนะนำ
ทุกคนรู้ว่าข้อกำหนดการเชื่อมโยงการโทรกลับของ WeChat Pay ไม่สามารถปฏิบัติตามพารามิเตอร์ได้ แต่พวกเขายังต้องได้รับข้อมูล XML ที่ส่งคืน ฉันเริ่มใช้คำอธิบายประกอบ @RequestBody บนพารามิเตอร์โดยหวังว่าจะได้รับข้อมูล XML การทดสอบล้มเหลว ในที่สุดการใช้ HttpServletRequest เพื่อให้ได้ข้อมูลได้สำเร็จ
รหัสตัวอย่าง
@RequestMapping ("/weixinpay/callback") สตริงการโทรกลับสาธารณะ (คำขอ httpservletRequest) {inputstream คือ = request.getInputStream (); String XML = Streamutil.InputStream2String (IS, "UTF-8") /*** ในภายหลังให้แปลง XML เป็นแผนที่เพื่อประมวลผลตามตรรกะตามข้อมูล* /} /*** สตรีม InputStream ถูกแปลงเป็นสตริงสตริง* @param stream stream inputstream* @param รูปแบบการเข้ารหัสการเข้ารหัส* @return string สตริง*/สตริงคงที่ public String InputStream2String (InputStream Instream, การเข้ารหัสสตริง) {String result = null; ลอง {if (stream! = null) {byteArrayOutputStream Outstream = ใหม่ byteArrayOutputStream (); ไบต์ [] tempbytes = ไบต์ใหม่ [_buffer_size]; จำนวน int = -1; ในขณะที่ ((count = stream.read (tempbytes, 0, _buffer_size))! = -1) {outstream.write (tempbytes, 0, count); } tempbytes = null; Outstream.flush (); result = สตริงใหม่ (Outstream.tobyteArray (), การเข้ารหัส); }} catch (exception e) {result = null; } ผลตอบแทนผลลัพธ์;}สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะช่วยให้คุณเรียนหรือทำงานได้ หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร