0

我有以下方法

public Maybe<HttpResponse<?>> post(Publisher<CompletedFileUpload> files) {
        MultipartBody.Builder requestBody = MultipartBody.builder();
        return Flowable.fromPublisher(files).flatMap(file -> {
            requestBody
                    .addPart("file", file.getFilename(), MediaType.TEXT_PLAIN_TYPE, file.getBytes())
                    .addPart("id", "asdasdsds");
            return this.iProductClient.post(requestBody.build());
        });
    }

来自的返回类型this.iProductClient.post(requestBody.build());Maybe<HttpResponse<?>>

如何将下面的代码转换为返回Maybe<HttpResponse<?>>,目前下面的方法有错误

return Flowable.fromPublisher(files).flatMap(file -> {
            requestBody
                    .addPart("file", file.getFilename(), MediaType.TEXT_PLAIN_TYPE, file.getBytes())
                    .addPart("id", "asdasdsds");
            return this.iProductClient.post(requestBody.build());
        });
4

1 回答 1

1

您可以在请求发送中使用collect,然后使用 flatmap:

return Flowable.fromPublisher(files)
    .collect(MultipartBody::builder, (requestBody, file) -> {
        requestBody
            .addPart("file", file.getFilename(), MediaType.TEXT_PLAIN_TYPE, file.getBytes())
            .addPart("id", "asdasdsds");
    })
    .flatMapMaybe(requestBody -> iProductClient.post(requestBody.build()))
    ;
于 2021-03-08T09:12:32.677 回答