一、什么是body parser?
body parser(不知道具体如何翻译,~~~~(>_<)~~~~ )指一个HTTP请求 (如POST和PUT操作)所包含的文本内容(body),这个body就HTTP response中的Content-Type header,该body可能是XML、JSON、二进制码(binary data)、文本或其他Content-type类型,而body parser的功能就是将这一请求body转换为JAVA。 其解析过程见下图:
aaarticlea/png;base64,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" alt="" width="417" height="199" />
说明:
- 不能直接直接JAVA来写BodyParser,因为Play的BodyParser必须用Iteratee[Array[Byte]来处理动态的body content,JAVA是静态语言,所以只能使用Scala来写BodyParser
- 所幸的是Play已经提供了一些常用的BodyParser API,如解析JSON、XML、Text、上传文件等,我们可以在JAVA中直接使用这些API
二、body-parser API
在Java BodyParser API中,所有的body parsers必须生成play.mvc.Http.RequestBody值,该值通过
a request().body()
返回获得
aaarticlea/png;base64,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" alt="" width="528" height="62" />
还可以是使用@BodyParser.注解进行部分的body parser
,如我们可以通过body.asJson() 得到一个JSON body
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuwAAABrCAIAAACjaEDiAAAgAElEQVR4nO2d308bZ/7vnz9gbrg5Ui4iRRohoaNIKEJcgNAKXxgFWQLUCk1IkWPyTWuyWQRpFNy0cdh+C1m1E30T+3wbaLP+NuGQjdOtm7N12ronuA20B2eDs3UV/KVOAlnT4AYTEizjxTDm+ZyLmbHHvw0BAunnJS4Sj2fm+eV53vP58TwEEARBEARBtiHkRRcAQRAEQRBkLaCIQRAEQRBkW4IiBkEQBEGQbQmKGARBEARBtiUoYhAEQRAE2ZagiEEQBEEQZFvygkTMnKO9iEhobYEXU4itTzTgfL+OZQghTFmTcWA0KNBNue9jR3up3D16W0DYlJsiz0fQrmfwN4UgyG+LbCImGnBd7NSUEEIIKanrGQxI0+e0XV9CkmBYzdtXvfNrm10FN88W9MBNuy9T3mj8qzccW9NttwQ0PG7nD5YzYm0O8vbxcEojLgwbd+n6JxbFrwvz8wvprRy5Y6rRWXwRAACIBe1tTHL3ELbecPVu6pULRHDzbGEiRjmDiv1T1mRc8323CGmVIqREb59+0cXKQ8G/qfUi4rPoakx3Ipt3RwRBEImMIiYWGj1bo+6yT4QoAAjTzlN1Df33VuTDyU/JaGDoA83uPw6HVjJdKg+reeAKAZue5d3ijErD9+xGze6jX89s02ly+Z61Za+u71ZQoABUCN7q0+1tsd5bVn4nYNPGK5zlKtO2I6WGwTllIyQpDyoEvuvR1BiHn6ylkIWLGACAKZtWw7vDAAAQC0/Yjarqo47pbdo/ySirttXZdBEDdG7QUHrENr2c/6sIgiDrSiYRQx/ZWzUGZ1weJKkHSH9K0odWrnZtj/g1ixgAoDP21h2t29PZIczYO1LEB50bNJR22GcU1ckrYpbv9qrrePd88rVTlMfylLUljxbKWsw1ixgAEGbs7Tt0tsDLoGJQxORm3s3XqXvvoopBEGSTySRiQs5O9oQztAI0NPFNn0GrYgnJJWKW7/aq91t8otcjFp74xtRaw8Z9CkmRHNHAyIV2VbHsD7rs+qKL1doCsOAx7U0118eN+UybPRhLFzEguHm2mneHAeiy32k2aKtZ8YQd5TrzUCAqfS3mMe1h5PCOBdlNxhTrBnyLFABo+O5VQz0rOV9q9O37yzjrVLzIwmP3wKnGsh2EEEKKVa0fxq8c85j2xEMQhGmXxaBhGUL26Pq9i3mafdqu13S7ksUHzLu6NVL1E2XO5chY8Vlqdp92RZJlQqryWPD2cjWWcclQRkMTDnOr2AVkR1njqQH3Y/mrVAj80Ne+l40fcl17j9XbAkK8pozeHkxUoSS5YKkzveDmWbHDlv/pNL+lrS6WPYGHTEOP5JvGu57V2vxCYMTSWc8SQor1/T7ZqOP91CB5NhlWdbC9WcVZH9J4mYOjA8amMkbqvlbzTcn1ma/fV0Nq1XKPGRq+7zAdUbFMfJy7g1FFkdjmP3+Z8CRWd37mK1AeUSE4OiDflynjjnc2J43VeLOnipicPxAAoPPeq29rpKPFKv2R5rJD1qnlgo4CANCI6/TuGotvLdZYBEGQtZNJxEgGgMiE9UgFd/oz1wPfZ1ktMTT8wGk6WHHwM/8KAAANfHG44qDJ+SBMAYAKwX9YDfWyv5xGPOaEl4qGJp1mbTETD0Kk07aW0pPOuXiYizDjeKsq4TDKZYmh4YfuO345AiP6yNa2q90xp6yU4OZZzXHjQbX+vHMyROm879tBz6wA8GTYqNFa5OgN4fFo36Hi+v5J8b90dqTnFbXRNjYbhXiZK99yzCRLqdoOY0uD/rxzMhyjYd+3X3pmc8+SmS0caSotjyUmFrS3FSVURaaLiwWuaLP5xRlrOWB/s0Jrdk6GKABANOixGtScyRMCEMNrGoz2e2EKALHw5KBJuycR2Ev9tpZahX0O6MzXR6uUTZHdEkNDk+6fpqQAJio8uta665hjThnPFHbze2uPG1rUR847H4RpLOwb+tITpAAQGjKWHrL8LBZY9LtV1vffl/rn6fc96gaj7adZQdSjD5ymg5VKJ2PWfl8VKVXLPWam7IdrtabBSbG+wozHekJdY/ZIWjPs5qsJo+649L0/HAP6zGNu3NnpDBVQCBq6xddopBMBQHh82/xaUUEiJvcPZCU0/MdS7aWfpQ6KBkc/1hU3909GCzgqE7Tri8SXDQRBkM0ju4iJ3u2t0vZPRjO7k5KMBL/rGLgTFChA2GNqbLJOJj1UIyPdezrsMwLQR/bWhm7XM8UxYcbeXpR44M67+YZ6i1d6xYvc5iub5ZBVSC5GLOx3XTHUq3u+fypNJNMuyyltdTEhxdWNzc2aMiblOS64eXaPHIOiZN7Nv8qZvvPHY4SFWd9PU+LjfsVnqVH3eZeVpyz6LPsThg3xwsWH+kYfr2JiXB8RE3bz1RmOp3ZPUXnHZY9oCVj60VT1utW/pPg2jbhO72m1z1Bhxt6xp3tEGZ5JZ+ytRYnwmoj7TGW9xSe1RnJnASTN9DTsd102qF/pGRHlXDTgumTUqljCsNWvaps1ZUxK9cNuXlWs+3g0mDw1AkDkNl+lNQ09lCdgKszel/tn0WfZn+rFWBm31MTtgjn6PQexoL29zORRTMgpIibHmKFLHnNVk9WfdLdnru6GVvsjKtW0VmFJKtz7I8zY23d1OJLin8Ie64fOqWT7R+YL5vqB0Ij7TBVnHoqLHIjO+sbjojPnUeVdq7eLxw1BkJeGTCIm6uouPuZ4MmapqT3lnHo6YTeqduZwJ9HwPbuxocZ0J5I5dED+MNPMnXqphDEm8qD/UFXPSCjxyBYCNn0894Wt1hktI5LjQLSXGC4P+2YFABqe+kd/+84MIiZzeAcNj9v59jrZYVStPWVxTQupd1TC7FHMcGsKQcjnThJZu4hR1JSGJuxdkiUg4wWlD8NuXqO1TeW8VNwYQ5cfDDRVve8KKWeyKZs2rp6UzRh7OvKBWn3iyvDPswIFGp76x0D7znQRk3Z3iVjYd51vb5AdRiqt8ZJLcoUo76hkr8mzkLkKBZGmJjO4k3KNmbQ2Vn6YWtOCx0+OJkq+WfoF8/5A6LzPfra9Tmzj5B9X3qOJu6KIQRBks8kY2Ou36eq6XU/CYwOt5TtZ1R/eO17HKGbuDE/JgE27x+SJ5bbETFqbak8NP1EcXZzo1yWbTKT3+6UM+Q4ZpwcAAAja9bu6hhP5x9FHtrYdBYqYxcmhz1y/JN5lY+EHf9HvEZOt6JLHXFlxxh3J9RK/JhGzLoG9QsCmZ3K7kySmbNpXTJ6FnJaYJb/1UOmpIYVqpMLEAJdkMpGNMUuPnYbaFluyuSFr9Ou0Xb/XOBx37lHh0bXWHQWKGLo4OfyZ61Gif2jowcCRPcahEABA2GOqr+Bv50ruXauI2WkcXoh/sDJuqXm11yvfJ9+YyWeJWZuIEWbsR6tyVzbbBfP8QBYmh750/ZKwgdHw+IC+Xs5oy31UcYtU6xqCIMiGkznFes55spT78LZo2xeC3u/+PqmIhUx9SgqPR/ter+j4Okip4Le1psfE8LdCFKTMbdWxfjGSlIYmHGe05WyK34dO21pK9e+9/WpDkqsCcomYyEh3aSM/8qsAQMMPvv3zm7XFuzK5kzI9ZFPdDdHg7Q+5Klm40F+HuhrUhssuyZZOhVmv88q5P127v6y8QI5JiE7ZD5cRUnbYnhy6sB4p1jFvb1Up747mDuyNBkc/1lUYHEEBYNFv60iLiWnkR+doPOSiXwzEjoUnHLy2ik2Zmajf1rL3D+8dq2mI+5XiZBMxz1zdtXX890GBAg1NfnuhvbY09bLZzQyp3jrh8W2zNj6X0+B3Xep6wxWX7NmJznq/vcKfuzYRUZyfa3KlgS8OFzOk+Kg9EG/72JzjWBFTK4cHRYMjZ+sqFVo295gRJm2t6TExZ0clq1UBIibLmEnuIABhxmPjdfsvJLs7M10wzw8kxZdHhaDLzL0qZ73lPioVLermS6t6vRgSgyDI5pJlsTtFPgJT1nTS8p30RM6w2B0hpERj+NQbD9sMDPd11EkJFOW6btuYYsUzxRp6TKWOvz42eJol8fwjkXk3v5eUKCN80+7LpIQQxsJjA63lOwghhK1pNX3jc55m426FDEuWKdwNUVd3yX7jfxzVJBI3eLtPsXafMO2ynJSzkxi2Wmfs+9ITjGZeWW5PUiQFgCiDahmmtmvo15Q5n4bHr3W/VpZxsbvCspPSUqwzFSl1NcJoYPjjDinZZ0e59rQtcYgmkoPEdhj7vx+wKbemEfeZClKpjPAFSF0XLsU+RMM/9bdWMYQQUqxqNTt8Nz5gieyVy7B8oqIVadTVU9J88j/kESUOG18iIIMKgRHLSTk7iRRXa4191z1Bgebp9/j5we+6VDsZVc9QUCF0hBnP9Y+MWpU8jNv6xxRDIv+YeTTc96Z0lKnUdl+Tfh2KbmX09mAiMyt5SGcdM2mpWPw1TzAtV07ZlFJH5PyBwLyru67Z2COPipTRmPuo9B1MsUYQ5IWw9fZOojOZXBVIRpb81kO7Jd/K5hCbc54sbbG9HGvYIesCnRs07D6U7KZEEATZDLaaiKGLYx/VJ/JRkXxEbvNVh63+fAvTrBeLP/XWN0kp2QgCALDotx4uJFgHQRBk3dkqIibVGJ7ul0FeIKnurQx+GQRBEATZZLaKiEEQBEEQBFkVKGIQBEEQBNmWoIhBEARBEGRbgiIGQRAEQZBtCYoYBEEQBEG2JShiEARBEGTd4AhweafWGThdBByBf+uGf8U/pHCzFTgCnf2Q2NdkBT6vAY5AUys8eUnXHhnjgSPAaSF1F50CQBGDIAiCIOtGQSJG1itcKYzJW5PRaXi3CDgCXA08lFXMig86CHAETts3rsgyYfj12fpcKfIIQjkkF4XHv0D8+BYRMRFvbz0hhJDsW9UoV4LPut/QlE3LZj+67XhpqqPcH2Ajtvp7voaac7QX5R1aCIIgG05BIgbgiR2aCHAEBjzSJwEr7CPS6Z/7kj8sgpszG1VgCQFudsAn7vW40jScqYCx7LPEjB0O8xBfDG6LiBgAKHTT4JybJm7+rJ9t58J1OXd9q5NpdyS23nD1bnjTzIxZu/h5mhHWq6HWtKl4PiJ3TDU6i0+5Jm3EZ9HVmO48xzK1wuzoBX35DlzXEUFeMgoUMXGP0pFeWAEACl81SedyBNp7QVB8uOG+JAFcp2AfWQcRIwTgvAo4NquImRmENgYOvLwiZvPZUBGzASTtbk2FwNeGCl3/RDT3SevGRomY9WEDhtbytO1IqWFwLmUzxrlBQ+kR2/RaNz2M3e2tqu1xzb2kPm4E+e1SqIiJe5Rq4OEKrExAJwMcgW497CPAVcL4ElA/nGQSvqQ5N1zQwwECbzSCw5v1wnMeuGyANhYOVIPJDPefSp/f0AJHEuoh8V8K9/oks5D4d4CHqBsOEOB2whffwLk62MfCaRNMiQ/4AHQR4OKKR/nfMHzKJa7DpamihbvwTpHiCyyMCQkRc3cI+DrYxwL/ETyVH45CEL7qgTYW9pXB+auwkPzQRBED21zEAMC8q3uv1ja1SXf/rYmY1K3C4zzf1s2F/VIQBNl2FCpiFB6lz33w0AIcAU4N9x5IwmXAI/uSdsAPcxAdg+MMcMVw7j04xgJXDDczPenCo9DOAEfgDQ20scAR2FcH9xcBsouY5Sm4YoQ3CHAEjrXDJzz8bwcsiSIm+U9/CuZpLhETcMJ5LXAEuCLg34dPePhhUlG4Fbj1n9BVBhyBJg38Fw+fnIVfYrKI2QUHiuFYtXSvCy4AAFiEq3XAETjRCbwGOAJ/soNSxqS2tLyHUYtl6LqptYYlhJAdZY1dV73zFOJBLdXyXCXFSSSmVMHNs1nOVZBlplFEXWQ4Gg26Lxs04hd2lDV2dGpVnPVhQS+ydN579W0NK/philX6I81lh6xTy3KFU/wzjMLAv+h39hq0KlY6Uqkz3QwI8j3znJu7OlQIjg4Y6sUrM2Xc8c7mMs46VUh9UkXMrLNT0+mcVTaUsbGcIYQQhlUdMQ89Snw3W1Pk7dk4GWffPE2Rm6wNFR+Nfx68xusqGUII2Vnd8ZlvMd5M0cDIhXZVMSGEMOWNxsuuL7oUQytbUyi8cmIpE9FaqdtCrfgsNbtPuzLsSEojrtO7ayy+lbQjhYAiBkFeUgoXMXGP0slLYFUDR6DDAiuyC+n3Z+H/NAFH4LVOCAPc6gSOwO9NsAwwbkpLYhKhcKMFOAItnfBEAGEazpQkDDlZLTGQpksAYrKI+cQFMQH+uxeaCHAMfOXPaYkBCNoSJpaMpBQD4u6kIvj8Z4AlGKhMeNnCTnhNtkste+D3BPY1wJSi2plaWnDzLGFUJ6yeGQEAIBoc/VhXccQ6IQYApLxwCwGbPlnE5DhXcYfsr8uZjsZCo2drVMcuff8wTAGACkGXmSsrTMSshIb/WKq99HNYbLFocPRjXXFz/2Tc/5LDhBALT3ruTMkBJ8JDW6u63fFY8YX85oeMlaWhW3yNpuPS936xVMLj2+bXilYvYmj4n64rJ9SJfb9jT0c+UKtP2caCglT+QZO27qhjmuZvipw9m1SfDbHEZB4V4oiqlrqeht3mut/Jio1GPOYadZd9IkQBgIYmnWZtMSMrodxNAUDnxyxH6k/934BAafgnS8trpwZ/SatVLGhvK9LbM3tqg3Z9UZs9uJaQFjrvNLDHHHMYDoMgLxurEDGyNNnHglYRzysZYHbBAQY4AuecAAtwfidwBE5YIBiAcUtC3CQRgnM7gCNwflj6wG1MfHNtIuZGIOnK55wbJmLkmBjlF8Tyc40wHoCgB04Q4HbArVDiatlEjMbkUTbOkt96qLR7JAJQgIjJcO4eflQZsrFqEUMf2VvVHY5fFVP8Stjz2YdOfwGvwTTiPlPFmYf88eDX6KxvfCocb8Acsy8VAiMWo66aZQhb3ajdrynbney4WZuIEWbs7bs6HEkBEWGP9UPnVCGv9QGbVhHWqzH8xR2UW3dl3FLD9XrTbAmSwSB3U2xZEdMimc0AAMJuXiN1AX1kb23odikzAoUZe3uReJE8TQEAso45+Z/nMisY8XbVGRohUbbq1Vc59nSYryvbo7M+QDsMgrx8rErESJYGkpRZnci1js/ZslBI+kuPhE3TIkp98FwiRoBPWOAIdNk2VcSI/075u6GYJ7KJmNRZSjHB5BUxOc7N+knu7z+v7Z3O++xn2+vKJLdCtc5oGUl4hbLPvvTp9z3qesOVYd9sFCAWnrrd3169HiJGMROvgbglhs77bG+r1R+MPI0lDpFMxF07uZpiy4oY5e0UTZd7sOVtCgAAoKGRnoqiIt1Vv5DRCLYRIgYAosGRs/UJ+xmCIC8PqxIxcQsHR+CkVY72iMf8xs0tQTjNAEfgHWtBV3tpLDE39cAR4DgIZHlYZhMxvzs1rMznWpzoP1hl+nEJIG2uWp6ytiSLmBznKu6waksMlym4shAWJoe+dP2SsATR8PiAvt44/ET+INvsGwva23YZhxPv8sJDW2vVOllijlbxt9eYoJsUExN50H8ocamlH02VmuwNlbspcvZsUn22hoihk9am2rTBpmPEi+RpCgAAyYt046cfZb9SeqECNj2Tw53ErFVbY0wMgrykrE7EyB4lKdxEJh7zK8W3rsAXDcARaOLgnviUXYRH6ZNockxMbAbOlQBH4F0bUIAf2oGTs7UXPHCcySBiuiwQmASXOxHYe+FbiKbExMwBXySH2lAYN0vL2ySJmCL4/Ef4xQNjaW/rokZp0sJ/+2F8EAKxXCJmql9aJufTu1IFnz4E5dtfNhGzs1jT2e9+LAAADU04eK7yLYcY5QLPXN21dWZ3mALQ0MT1njqWSRYxaedWvGkPLKfeYU0xMdJlgQrBH228fn9fIbkhYTevKtZ9PCr5XMR4mlcV09szV3eNiv+7FG0z63Vaez8a/pUCjbhOl9adHQlGAWLhye/+3K4pZkuSRUy2c/NUVoqJ6R8NihOnMOOx8br9F7zLBbyapwT2Rm7zVUftUu8IwaEetfrEFdc/JY+REPQ6/8L/6W8TyzRfU+Ts2aT6ZJx98zdFblYtYlJGBQ1NOM5oy1lJxORpCkiKg1HEx6TcP+btrSrl3dEMgb1RN19a1etdW1gLihgEeUlZrYgRPUr7mpKNDWLM727wyC+78yPQxkhGjhNaaGOhy5bpaunZSWq4GwJQLKb3Ri28wUjllERMDK5WJfw1iRTrjNlJ8SVtGHizNrFAnyhiVrxwJHuKNQDc71VcMznFOl3EwFO4oJK+3NYIJ6pTnWjZRMzrV9xDlk4xd2ZHue6cYyKxgjAN/mCWUkWKVe0fXuE50Urvdou5JK9fcX/X175XPpe3+6TsJDnZJDmJRX7NzX00LdPkMG/7MZjZBZDCvKu7rtnY0yFlNhGm/CBvH1esDkeFwE2TVCPClHGdZptLjBqh82P9beWMlNtictxxflCd7JLIem6+6lAhODpgbBL9OoStaeWveYJ513pRLnZXordPAwDAgrf3FcXFowHXpZNSQxHCqrTGj65LcdZ5miJbz3piGfOPCGGUYa3ZmzF3lbI3lOJQid4+rSyDorIXO8XqMJU6/vrY4Gk2UbBsTZHIh5Kuk7hyWlIVplgjCLIaVitiRE9NwpckQuFma/LOSuI6Me2JBWDuZrEEpKwTMx6f8xfhZje8wUgLrtiak9w6T0fhXB3sY+B4OwyOgSCLmAEbnH8d9OXAx9eJAYhOwAUO9okr1jjglFKvULj7ERwvg31lwPOJVWoSNZuFvx6HNxh4ow4uXoN5mlPEyOvEvFMNHAtdBrgxCsqZstCYGAT5rbLktx7abRwKJX9K5wYNuw9Z/UuZT8oLnbQ2qVot7sKEOIIg24ZVi5gtSWpMzFYFRQyC5CNym686bPUvKj5a9FsPrz2qCUA0XJnbG8rKcNsBBHmpQBGzmWRb7I5kNq0jCIIgCJIdFDGbyfZvaQRBEATZMqCI2Uy2f0sjCIIgyJbh5RAx2wVsaQRBEARZN1DEbCbY0giCIAiybqCI2UywpREEQRBk3ShcxEjroyj2J/L0A8/BAQaOvQ6Xr8F8Yn02mHHDxQ5oY+ENDZy3wC+K1dGlRXIVK8vFP3n+iJYtHhyDIgZBEARB1o01ihgKd/nE6rcp2w9N9oMuefFcnQ7uyzomLlmaWmCGJn2CIgZ5buYc7UVy0nr2zRYKIna3t6poHa4DsTnHMblQ7Nq3okQ2iYi3t54QQshzLuCE/Y4gG84aRYy8w6LeAJPTcH8YPmmVRIzwAE4WAUdgnwq+GoJhkyRojvdKa9fGJUvqBkYoYlZH0K5PXZi+RGP41Bve4mvNZNu5MLE4fXzhHFbz9lXv/NrWWM29Y9TmXwcAnnc/7d8uBe52SSMec02DxZe0JVbEZ9HVmO6seqG89VyFcq39HrljqtFZfMqyr7U6CPKSskYRI+9T3WaCaJavDXgAILHLY3xnJaWIEfd3RBGzZpIf7sKUw1Db0H9vZb1vs67kmpCSFUM0MPSBZvcfh0NrqRCKmJeIwkQM9dtaag3OmRTVS+cGDaVHbNOr3HbpxYuY5WnbkVLD4FxyfdZYHQR5SVmjiJH3qeYYOD8Iid/5CnxeAxwBbg+MywaBgFU68aoXIFnEcAx87ssqYpY98HulHpLNPwMeAAHGr4FJL2+61AfilntJIkbe7FoKvkn5r7i7kx4OiHsqebNWPGV3p/j+SvFNlO4OAV8H+1jgP4KnOc0GGyxigEZdPbvWbcbdIAoXMQD0oZWrLeAVvIBLrRUUMVuAQkQMXfb2qSvOuCPpP8E1bR75wkXMBu2FiSAvF2sO7E3sU63UMQtwfmfS/oigEBa8A0AhYg6wwBFoMcC9z7JYYpbhqho4Ar83wbK8gTZXCeNLMG4CjsCBajilkUJzxIsXLmKiY3CcAa4Yzr0Hx1jgiuFmpokqwz7bdXB/UdEgu+BAMbwlF+OCK1cbbrSIWQk5T7CdTnnzvLStm803A4kN8KKBoQ9bVcXi9sqNxsuuL7pYQgjzP8v3/A9CCMu7RV0o7eQs/188N3mP6yPmoUeJg3Tee/VtDSvetVilP9Jcdsg6tQyQcXPmpM0WUhXD8t1e9X6LT9pGh4bvO0xHVOKVmfJG42V3YifqaGDkQntKdbS2ACx4THsTOzOLxD1xSftCZ0Zw82zzhSGHWdFWf0347GhoIn6I7ChrPDXgfpxoCmF6pK9DLDBT1mQcGPzivVqtbSq+3YRin+24N01RzvUn3hqs1uYXAiPS3unF+n6fOIq235iRWfRZuN3dI5n8LDTiOr27xuJblUVPcPNsi2Xouqm1hpU6t0vh3IyFJ76RD4mdO5rYXTJLvyfqkhh4iZ3SFYMBAGDFZ6nZfdqVQZOtqToI8pKy9uwkCvctcgBvEXx6FwASQiGjiOmyAShEjNUCLQQ4Bs4dz+pOmuqHfaJwicIPHcAR6LDACsCYBb5yQ5QCUPiKS+wjXbiIudWZkEeiJOrsh9SnguwLa+mEJwII03CmBDgCp+2KBhHrvgQDlcARONKbdhEFGyliaNjvumxQcyaPpGHo0+971A1G20+zAgUAGn7gNB2sPPr1DAWA2NORD9TqLvtEiAIADU06zdpiRo5gFQI2fdIEFLBpE/8Xzz1lGwuKM1Z4ctCkrTvqmKYAACuh4T+Wai/9LE3z0eDox7ri5v7JuNoo1BIjFrji4Gd+sUXplP1wrdY0OCleWZjxWE+oa8yeCJWCIbJWB+i0raX0pHMuIZZmHG9VSU2RB8HNs2SnymD1iIJJeDza93pFi3VimQIsB+xvVmjNzskQFSvrsSq6IOQxcWqjfSIck6vTUhwP8EzzfdCZr49WveWYKeDVP0M4FCFkr8mzkP9cAICwm99be9zQoj5y3vkgTGNh39CXniDdnmNGZtqur8qq/4J2fVF+wZqE4OZZwqhOWD1il0SDox/rKo5YJyIAQANfHK44aHI+CFMAoELwH+r/DIAAABzHSURBVFZDvRyqkrPf051EdNpx9BW5KeLEgva2omRZU1h1hOBQj4rZqer6Log7diO/AdYuYgCAwrhZskDsU8N4ZHWWmBt++Lw+KYkpXcTQaXi3CDgCV3+AczuAY+ArPwBATHyszMKoFd4tW72Ikct5wgLBAIxbgCPwWiekPiVlB9b5YekDtzHxzbg7SazpDW2iGNnYCBHDxiexIs3bVxJmgEWfZX+qzXll3FKz3+JbBOq36eq6Xc8Ux4QZe3tRIRPSyrilhuv1Js2XKz5LjfRqSCPuM1Wcecgflh+h0Vnf+FQi3DifiEmamH/XMXAnKFAAuuQxVzVZ/UnP5Weu7oZW+yNKH9lbG7JXBwDm3XxDvcUrtUbkNl/ZnBwvmRXBzbOVZs+S4sZ00tpUz7tDsPSjqep1q39J8XUacZ3e02qfoUBn7K17kt+k6SN7a6U8mdGI+0xlfTwKNbmEG0vYzauKdR+PBlMC2rblmJHL4ubZ6qzfyX006ykak0d5ypLfemgPPxqFsMfU2GSdTBqMkZHuPR32GSFfv6cMv5RhECfs5quT2rPQ6qCIQX5bPJeIAQABbrQqUo1WExNzIwDzTmjJKWKAws1W4Ai0a6CZwL4mCIg/zEW4ZQI9Awc0cGINIiZuMVL+KYSXXPTUMBqlcNkiIkZ8uMfCPptB/UrPyCxNHGJT39Xj7+uZ/P0KK0jOCSlg02a6Lomb+Om8z362va5MchxU64yWEYVLYhUxMTR8z25sqDHdiaQXSVnOPNUBSDLGRB70H6rqGQkV9ojPFBMjhzgkGRtS2yrXiVKZ4sYYuvxgoKnqfVdoczLLsoVobMsxoyjKuouYbPXNWB7pw/z9rjTGLPv6m17pcc2lDcY1ixgE+W2xRhHzBG6OSHEwcVEieoviX5Mm/uzZSTcCiaiXrCImHgpDEn4coHDLAByBdy0wLySph0JFjJxd9Y41Z523gyUm/jAVJ8J4YGPYY6qv4G9ntjbQR/ZWTXIex+JEv47JMiHRKSsX///Sj6ZKTaZ4Q5GFyaEvXb8kXvFpeHxAX28cfpKpzKlkmAACNu0ekyeW2xIzaW2qPTX8JEt1RCRTx9IqkzsEN8/u/vdhpbwQfP1co8kTzmOJ8VubStNPLFNMZvJb+NJjp6G2xeYv9M15HdxJGUXMthwziu9U5HInMauM0hXcPPu7tEF1sMr041JuS0z+fo8bY0JzzpOlLbbpDB0vBGx6Joc7abXVQZCXlDWKmAB0ETjWCV99BudUSYYWwQedDHBp68S0m0AMz0zJRZqxQVNOEQMRuLAbOALcDvhhTryEJEG+mgIQ4ItG4AhojeAPgKAUMXPAF8nSR+H5Ei1GYnZVEwf3xEfjIjzKZAdSxsTEZuBcCXAE3rUB3XoiBgDm3TzXan8kPhJp8Lsudb3hissvhxrMer+9wp+7NhERg0jU5X+wiO4nGppwnNGWs/KERCOu06V1H3rCMYBYeOLL7roSRZCmEBzqUatPXHH9U7L+C0Gv8y/8n/42sUzTXBVUCLrM3KuKCeyZq7tGxf9dCiaY9TqtvR8N/ypdKUXEiAEoHV8HKYAwaWtNj4k5OxqKAcRCo2drVMf6M1dHgk7bWkr17739asNqvDaCm2d3lWqO9otBxDR838E3Vxz+IkABYNFv60iLiWnkR+coANC5Ub5R1aE8saWcLUmazKjf1rL3D+8dS1vdZEPJmiyzHceMTMTb21DKj6Z4yMQLRt18aVWvN+NPk07ZD5cRUnbYPpV0QcHNszuLNZ2KQcVzFW/aA8sAVPDbWtNjYvhbIVpYv4vGmD+cejt1GZgEMW9vVSnvjmYI7M1VHaBL3oEj2g6LB+00yG+C5xExSl+MrgWm5ImhwBV7JckSgU8qcooY+daJmJUQnC8BjsCBajhWlrhLly3ZEkPhqybgCHAMvFmbWF9YNMwksqtYOKGFNlayJKWQITtJDXdDigZ5YSJG8Touv7HRZW+fmsRzH6gQGLGclDNNSHG11th33SPnUEQDroudmhJCCGEqdfz1scHTCQFBH4+YD5UzhBCGVXX0XXn/1aR3/WjAdemklGlCCKvSGj+6LsU/zru665qNPR0aaeU6pvwgbx8PJx7FVAjcNOkqpYyMMq7TbHP5wzTDYnckdfk+4dFw35tSDgtTqe2+pljZL1N1SEr+0byb30tKlBG+uZFzebQD7kTqU6WOv+5T3nf4Y7myO8q1p23K1fmEaZfFIBaYKT/I2/8++EE1ScpDoRH3mQpSmb66ycaQYUXB5Eyf7TVmlKw1xZr+OtRVyzC1XUMJVSSnj71+xf1dX/teMTupXMfbffHOpUJguK+jTspOKtd128YSBcrf7wCR23zFjpK0ZWASrDHFOuLtrSeZ2wFBXkLWHBMz54GL7fAGA/vKgOdhUin7lXsn1cGFS5n3TopLlrgxJpuIEReMUWYvzwzBu+VwQAUX7TA9AsdZaGsFlz91sbvoBFzgYJ+4EowDTqWvE9OeWADmbpa7p6wTMy4/hl60iFlv1nVBlC0JnVmd12YziGV3KGwDttaYoZPWpr0KJ5T88dygYfehZK/fi6eANeuW/NZDu41DoeRP81RnZdxSU7LlV7xEkHWjcBEjhoNwDNzM7KZF8oMi5gVCF8c+qpdSsrcMiz/11jfFs+K3HVtszNCI+0yV7qpfUHbxot96uCpboM8LIzzW25x/94DIbb7qsNW/qPgoT3VWfJaaHccdhdoaEWTbU4iIEaZg8BIcL0pNO0JWy9YUMckuhgLWf9texFeWk8i0UNqLKJMyNLfwmNwtwks+ZjaM+GKDGX15zw8VZu/d8c1ixC/y26EQERP30XAEDvOwmOfrSFa2pohBEARBkG1JISJmxQfGMuBYOJ0S+4KsEhQxCIIgCLJuFB4Tgzw/2NIIgiAIsm6giNlMsKURBEEQZN1Yu4gR4BM2sVDv9uNFlB9FDIIgCIKsG6sTMRQe/wJS+iKKmNWDIgZBEARB1o1ViZgZOxyOL+aGImb1oIhBEARBkHWjcBEzMwhtjGJFWhQxqwdFzJp57GgvJYSQrBv7IpvInKO9SF7rZAstdvdCEAI2PSG4HWMasbu9VUXrMUJic45j8nBjM+75hfyWKVDELNyFd4oU2yGxMLYoi4ArMGqG42VwQAV/HYX4WplzbrighwPikv/erFeOTMLfuuGdajhQDXy3tMWSEIRBM3RVA8dClwFujknKKb5izVejcLkd3mCgrR3uzsqF9MHFVjhAoI2DT65AQFzQRoDxa2DSwgECbVq4bId5Qfo8RcQIQfiqB9pY2FcG56/CwgYs7LrFREzApt1emqDQAoc8pqa0XR7nho0VhLtyb6RnF3mtf1LcKDC+aFtJYgPkxEp0224NusJYv35fzYq9qdtcbwnWoSm2kYihC8NdO0mL9d7N7l076/vvb8La1eu6pnPWjUs3lwy7vGXdb3wjiNwxpe4bSpd9loasy5FHfBZd/uWhty0FiZgVuPWf0FUGHIEmDfwXD5+chV+ikgjQsqCrljZH5HaDJwIAEB2D4wxwxXDuPTjGAlcMNzONY2EC3i1O2iryRgAgBBfVwBHYVwZvVUt7HVwdA1CImAMstL0KbzDAEfi3bvgXAIThQjlwDJx+D85p4YC8B+RdHvYR4Bg49qp07vFeiEKaiFmEq3XAETjRCbwGOAJ/ssO6/8ZRxDwfhRWYTttaStN3eQy7+WqitU25eVY55cw52kvSr7k8ZX29xjL+cm5AgyImzrb7CTwfgjj4p1w8u0kmjZdRxMR5IUN6edp2pDR939CcG8MVsFHXNqZwd1LqBoeyCGhqgsmItEcjR+CqFwDgVidwBH5vgmWAcRNwBDr7IXVGoPBDB3AEuGL43A1RAYJe+CUs7wdZAj/MAAhwswM4Ak2t8IQmRMw7fbBApStzVXA/Jh+qg4cCAEDIBw/ngU7Du0XAETjngBjAjB1aCHBFcHMmVcSEnfAaAa4SxpekuuxrgKn1nsNQxDwfBRV4wdvbWJFhc5mIt7e+qN0x6+2tKjqW2FxGcPPF4qr5safuK7z5m8llChB28/UJ28xLBoqYONvuJ/B8xMTBP+vprSprdzxe9ekeU9kqTQ4oYtaZrHub04j7TIW6z7ucUcbk3vl8S/PfP+b5wvOLGMmSEYCu+B7RC3B+J3AETlggGIBxC3AEXuuE1MV+5a+JWieOKICajfAvAAD41zA0E+B2wK1Q6ibV0obYLIwJAAF4lwGOwAENXHVASACIS5Od4F5IuuM5Z2r5pe0tG2E8AEEPnJDvuL6sr4iJ78PCam1+ITBi6axnCSHF+n6f2NRUCI4OGJvKRN8IW9NqvhmQ98ZL3VEo4T2RjKXyjzMWtLcxymCUhLdFbwssBFwXOzUlhDDFugHfYlgqUvNHg3ZeV76DEEIYdcdnPxe4VwUN33eYjqhYhhBCmPJG42V3MJo4HJ9ygnY9k2X3mZVxS01Nt+tZ2rVjQXt7mckTC9r1ZcpzpmzaQ/2TUYBZZ6emulpr8S0CPHa0v8K7xWaMBt2XjY3lYplY1RHz0KOCH1vZzo1bpMXyy41MCNljcrvFrmmxDF03tdawhBCyo6yx66p3PvF8Eh67B041lu0ghBBSrGr9cCgQbygqBEcHDPWseIMy7nhncxlnnaIAufpdcW6WMQMQDYxcaFcVx3vH9UVXYVNUyp5BUk0TvUBDEw5zq3hlsqOs8dSA+3FhjRwLT3xzTlfJEEKYcq77r4N/bkm6ePaGytcUOe+aem6yO4nOe6++rRGHMSlW6Y80lx2yTslPuayVXXjOn09+pME/bdc3rsFVugZFIrh5tvnCULy+THmj8a/esNzxuftdmB7p6xCfBkxZk3Fg8Iv3arW2qXjjK5w4mfzCWVn0O3sNWhUrPUIqdSblIAcavntV/vkQtkbfvj/+80mpXJqIiYW9nxo00k+bVR1sb1Zx1oc0fnTiG/kXLdZoNCjQVfX7is9Ss/u0K6PbKDLSvZuz+DIOFhpxnd5dY/FtK9vynR+gsz6/QNkQESP/O+lPC6kKXv5aSmhtyo2UwiWXiAGYssNxVrqd/jBMLad+IanMyeUXb5ryd2O9IxY3whITdvN7a48bWtRHzjsfhGks7Bv60hOkAPTp9z3qBqPtp1mBAgANP3CaDlYe/XomPv6zvoam/TjTvym4eVZz3HhQrT/vnAxROu/7dtAzK0hHyM7qjovf+8MUYmHPh3U7TzhDBfx66JT9cK3WNDgpPuOEGY/1hFrp6JWKEQ2OWlrVr5tHpjOUPWjXF61qP8J5V/drvDsMC8NGtfnml2+90n+f0odWrs0WEABiT0c+UKtP2caCoqQLTw6atHVHHdMF+BrznEvDP1laXjs1+IsAsfDYxZb67sG4EBHcPEsY1QmrZ0YAAIgGRz/WVRyxTkQAAOjsSM8raqNtbDYKAEBDk06ztvItx4wAADR0i6/RdFz63i814+Pb5teKlE/h7OaHnGOGRjzmGnWXfSJE4zctZgoO28zx2rocsL9ZoTU7J0NUrKzHalBzhWzuTZ/ePFVRZ7TfC1MAGpqwd6kYRfB3zobK3RSrQHDzrFLErISG/1iqvfSzNFVHg6Mf64qb5TCsPJUt4OcjBId6VMxOVdd3wc3dkX2NIobsVBmsHvFtRHg82vd6RYt1Ypnma4qQx8SpjfaJcAykodhSHA/spX5bS63BmXiY0Zmvj1YpejYXsfCk585UWF4s5KGtVa2wSz0ZNmq0lrvSYeHxaN+h4vr+yUJETGjIWHrI8rNYHSoEb/XpKuOxRzTwxeGKgybngzAVj/7DaqiPh6oU9tiMBe1tRVmNYdN2fVVWDZfrwfjCRlRGFv8FP3wDnfXwl/8Fz+ZekIgJwmkGOALvWHNeUbaLdFiSPE1rtMQAAEA0ADd6QEckc0vhlpibeuAIcBwENrITN0jEqIp1H48qLRYAAIs+y/5U++HKuKVmf0KqP6+I2aPruxUUUhtMcPOscspMfcRngy55zFVN1mSn7jNXd0Or/RGNF2Pn4XN9f6is/+BmIJrpIiC4eXZ109Kiz6LV2qZi3l61cTg82f9Ku2NOcPOlXcMLFFbGLTVcrzfpnXXFZ6kp5J2mgHNFHXPyAp+kYKRqaEwepfFyyW89VNo9EhEvkmo3XvRZ9tdYxldAmLG37+pwJLnMwx7rh86EczRrv+ccM/SRvbUh2cQlzNjbi55fxCz9aKp63epfUnxEI67Te1rtM3l+jUt+6+uVSa7DZ67u6vhdcjYUAGyQiKER95kqzjzkl6dJiM76xqdETZOvsgX8fDZ5ylGYCbMZ0rIjuHm20uxZUhSUTlqb6nl3KHdT0Bl7655kkwN9ZG+tlN1JNOI+U1lv8UmdO+/mG+pTY/mzQYXAiMWoq2YZwlY3avdrynYrvFTzbv5VzvSdP24uEmZ9P02FadyOlahc6pCO3OartKahh3LHU2H2/k+SWgp7TI1N1mQtFBnp3tNhn5Hf/fI/NsNuvjr7gM15VHDzbLVsXU49tkVEzOK/4IYNOuvhhg2ezUkfrruIadLCf/thfBAC0ewiZgW+aACOQBMH98Q2W4RH6U86CjdbgSPAlcBXYxCl8NQLY1OpMTE/dAJHoKkFZmhOETML/88FCwIAhS/qgSNw2p4aE/PEIcXE3JhOFTFT/bCPAFcEn96Vyvb0IWQO9X4ONkjEZPQTT9m0bPqTJ8lg/rwiJrM0SX1dK1TEZJzkkj8M2LSklDtpaK7QW8bmM/bO6kVMbM5hqLV4HvQfbnc8htjdXvW/D0991V7d642Jd8xEIU/wgs6NhVzvV5ASnfVBUpEzNZrcsGI6TDqiZ6qAuIGs/Z5zzOQqUiFkFzEZy1OQvEivrPIuuRuq8LvkI71l6LzPfra9rkxyI1brjJYRyWGRr7Jr/flsBmu0xKSeIvdazqbIdaJIwhhDlx8MNFW97woVZH+lT7/vUdcbrgz7ZqMAsfDU7f72auUoouFxO99eJ7sgq7WnLK5pAdL7LpM7yXedb2+QvbEqrfGSS3o5mbJpNWkaIvFhYf2+QSLmxfNsDv52SZIvi/9KOpTuIsn4Vwj3e7OkWKeLGID5EWhjpG+e0EIbm3k5lqgvNTvpE3fm7KSLowCQJyami8C+MjjVCAcIcEXwlT9zdlI7D2GaZkl6ChdUUhnaGuFEdSb/13OzmSIm7DHVZ4pvVVCwiKFTVm7DRUxhlhiWdwux8NhFXTYdE7BpmVW5k0Bw83u6P73WcdwWEACeuboPn7df4MQqLP1oqtRkCqMrgPznSl6kGz/fkv1KijKxvzs1/ERRwcWJ/oNVph+XgC55zJUVZ9yZNbYwYz9atcZ+zzlm6KS1qTatSDrmRVpi0sxO9Mnwqd/Jd8ndUACwQSJmYXLoS9cvCbsaDY8P6OuNw08ACrPEvGQiZve/DyvlheDr5xpNnnAeS4zf2lSafmKZ4lknG2OWHudIzEkjFrS37TIOJwykwkNba1XisouTQ5+5fknYWWPhB3/R7/njcGgFAjbtzq7hxOIbiz5LU1Xv3XiAz+Lk8GeuR4lTaejBwJE9xqEQQEGWmPz9LgRs+uzp3NN2fUXWF5igXc9slYGUzq+/wIUe6KyHOz+kHlpHEUNn4a/H4Q0G3qiDi9dgfjmXiAFxnZh2aGPhQDWYzHA3y9CPrxOzrwze7wZPACBtnZhBD0gxpTlEzCK4L8H7dbCPgWOvw+cu6ZTUdWKuwVzOdWLekW96YxQyOyyeg80UMUCD33Wp6w1XXLJdNDrr/fYKf+7ahDxJRUa6d9fz7qdUPmo1XxwOCuKjpLTuQ084BhALT3zZXVeSusrc+osYAGHS1poeE3N2NP4gS0w52XVM7G5v1V7evZqY7IBNq9Zo6kQvz0rIeapWoy6VX4yDQz1q9Ykrrn/KPvKg1/kX/k9/m8icBZBUn5znJsXBKOJjxG+6eXZnsaazX4xzpKEJB8/Fgznor0NdDWrDZZfksKDCrNd55dyfrt1fjsfE9I9Knj5hxmPjdfsvJLwqWfs995iJhUbP1qiOKYp0RlvOFixiaMR1erfqrFvq3KDXaTV/9H2QAsCi39aRFhvRyI+mppFmYPGn3roqrelr72xUmB1zmA6VszsVMTG5Gip3U6yC1BGe4uGlQtBl5l6V5Wyeyhbw81kO2I8WE6b48Bcb6vxOZ40iZlep5mi/GKFPw/cdfHOFVPKcTUHnRvlGVYfyxJZytiTpWUf9tpa9f3jvWE1D3K+kJGNDiQ+3syPBKEAsPPndn9s1xcrLpjrKo8HbH3JVZ9wRCnOO9qKdKilMhwrB7/m6BuVbiuDm2eJDfaNybLLw+LZZK79RUMFva02PieFvhVYjXmPe3qpS3h3N1PHRUb60odeb8R2ERt18aVWvN/PLHV3yDhzRdlg8L9hO82wO/vK/UqXMueMvrkBIGusrYtLXXEpJ1aFCYMRyUs40IcXVWmPfdU9QmWwyZJaC4cmOssZOs+2WNHvRxyPmQ+UMIYRhVR19V95/Ne5WSGQGJbsbAJKSUJg2ezCmSOIoJGsAQHg03PemlNbBVGq7r8mJDKlJUoorp2SUZEuxzs7CsHEnU8qPSnNOwKZjdilyCqIB16WTUoaRaCL+6LqnoADCrOcm2lBqltTqCG6eff2Ke0jKOCM7ynXnHGJErdRQ0y7LSTnphmGrdca+Lz2JWTM5w4i/5kkKmcre73nGTFRORiOEqdTx18cGT7NyX+dvDOHRkOmQ1BZMeWOn2RaXdxANDH/cIaV17CjXnrZ5M7sL06HhcTt/WMUWsSp9j9XlufJ6ssk/R0PlboqCSZ1v5l3ddc3GHrk6hCk/yNvHw4n6ZKtsgT+fFxbBQMNTP/lmC5Z4cnW0A+5EUluljr/uS7Rwzn4Xpl0Wg/g0YMoP8va/D35QTZKSkmjEfaaCVCojfBVkaSg6P9bfJj/cjpgcd5wfVBMi+3mjru6S/cb/OConl+0o1/F237wss77sE4NpCCFMVWv/T4pupVFXT0nzyf/oqEvkPSVVlgqB4T75KFOu67aNhSms7rG5ISnWEW9vPclts9xE4lJGdC2hiNlSbLF1Yl5SqN/atPuPw4XkQ21ZtpITYVuRYuHfFBaGjbtW58FE1onYnPNkaYutkFzBl4Ulv/XQbslFpYDOOA01qe6q+MG5QcPuQ8meOwUr45aakob+e1vqiRkP8tWXv+iiIApQxGwO826+MTVUdnuBIqZA6BPPN4PuKdlblGbh3/gChB5cPbq7oX9iS80AvxEWf+qtbyokFf+lInKbrzps9SvXg6GC/6quKpspZdFvPZwjTm7FZ6nZcdyRusT5lkBMt0a2DihikPwkL6SWtpofomTFP/inP8iJJISw9Yard8Mb/l4ee+p8u1i65Y4y7owzS8I/siEk1tvM6FBGVgUVZu/dWYWXEPlNgyIGQRAEQZBtCYoYBEEQBEG2JShiEARBEATZlqCIQRAEQRBkW4IiBkEQBEGQbQmKGARBEARBtiUoYhAEQRAE2ZagiEEQBEEQZFuSTcQseEx7CVOl77s1+xtaPxtBEARBkG1DLksMDY30VLySZQ9SBEEQBEGQF0lud9KUTavh3S94M3QEQRAEQZB0UMQgCIIgCLItyS1iHjvaaw3OIEbFIAiCIAiy1cgtYqjgv6rbUVb3wfDTTSoPgiAIgiBIQeQWMSGPqame/z4ooC0GQRAEQZCtBcbEIAiCIAiyLUERgyAIgiDItgRFDIIgCIIg25IcIiYa/PFi6+5DVv/S5hUHQRAEQRCkMHJsO1BXVtdhHnokbGp5EARBEARBCgI3gEQQBEEQZFuCIgZBEARBkG0JihgEQRAEQbYlKGIQBEEQBNmW/H/o9RCwX5RvigAAAABJRU5ErkJggg==" alt="" width="524" height="74" />
内置的body parser: AnyContent
text/plain | String | accessible via asText() |
application/json | JsonNode | accessible via asJson() |
text/xml | org.w3c.Document | accessible via asXml() |
application/form-URL-encoded | Map<String, String[]> | asFormUrlEncoded() |
multipart/form-data | Http.MultipartFormData | accessible via asMultipartFormData() |
Any other content type | Http.RawBuffer | accessible via asRaw() |
说明: 如果请求的body type不可行,这些方法返回的是null
pulic static Result save() {
RequestBody body = request().body();
String textBody = body.asText();
if(textBody != null) {
ok("Got: " + text);
} else {
badRequest("Expecting text/plain request body");
}
}
三、content的最大尺寸——Max content length
基于文本类型的body parsers (如text, json, xml或formUrlEncoded)可以使用最大的content length,因为它们得将内容装载入内存。
content length的默认大小是100KB,可以在application.conf中设置默认值,如下代码
parsers.text.maxLength=128K
还可以通过@BodyParser.Of注解来定义其大小
:
// Accept only 10KB of data.
@BodyParser.Of(value = BodyParser.Text.class, maxLength = 10 * 1024)
pulic static Result index() {
if(request().body().isMaxSizeExceeded()) {
return badRequest("Too much data!");
} else {
ok("Got body: " + request().body().asText());
}
}
参考:http://www.playframework.com/documentation/2.0/JavaBodyParsers