RequestBody

本文主要介绍RequestBody类的使用方法,开发者不可将RequestBody类和RequestBody注解混淆。

客户端可以把一段 JSON 或者一个文件整体写到请求的 Body 中发送服务端,服务端的处理方法有两种,第一种是拿到 RequestBody 对象,由开发者自行转换为目标对象,第二种是使用RequestBody自动转换为目标对象。

在学习使用RequestBody之前,开发者应该先掌握ControllerRestControllerRequestMapping的使用。

因为RequestBody最终的呈现形式是通过流,所以客户端可以把任何内容放到RequestBody的请求包体中发送到服务端,服务端可以把RequestBody再转为任何自己想要的数据类型。

转换为字符串示例

RequestBody类提供了一个string()方法,因此转为string()是比较简单的:

@RestController
public class UploadController {

    @PostMapping("/pushString")
    void upload(RequestBody body) throws IOException {
        String content = body.string();
        ...
    }
}

转换为文件示例

RequestBody类提供了一个stream()方法,可以拿到输入流,因此可以轻松转为文件。

@RestController
public class UploadController {

    @PostMapping("/pushFile")
    void upload(RequestBody body) throws IOException {
        InputStream is = body.stream();
        File file = ...;
        OutputStream os = new FileOutputStream(file);
        IOUtils.write(is, os);
    }
}

建议:建议开发者在遇到使用RequestBody注解实在难以解决的需求时使用本章节的方法。对于 AndServer 来说使用RequestBody注解更加简易和规范。

results matching ""

    No results matching ""