private void process(DeframedMessage message) {
            final ByteBuf buf = message.buf();
            if (buf == null) {
                cancel(new ArmeriaStatusException(StatusCodes.INTERNAL,
                                                  "received compressed message; " +
                                                  "UnaryGrpcClient does not support compression."));
                return;
            }
            if (isGrpcWeb && message.isTrailer()) {
                trailers = InternalGrpcWebUtil.parseGrpcWebTrailers(buf);
                if (trailers == null) {
                    // Malformed trailers.
                    cancel(new ArmeriaStatusException(
                            StatusCodes.INTERNAL,
                            String.format("%s trailers malformed: %s",
                                          serializationFormat.uriText(),
                                          buf.toString(StandardCharsets.UTF_8))));
                }
                processedMessages++;
                return;
            }
            if (processedMessages > 0) {
                cancel(new ArmeriaStatusException(StatusCodes.INTERNAL,
                                                  "received more than one data message; " +
                                                  "UnaryGrpcClient does not support streaming."));
                return;
            }
            // Retain the buffer after DeframedMessage is closed to use in the response.
            buf.retain();
            content = HttpData.wrap(buf);
            processedMessages++;
        }
Executes a unary gRPC client request. The given {@code payload} will be framed and sent to the path at
{@code uri}. {@code uri} should be the method's URI, which is always of the format
{@code /:package-name.:service-name/:method}. For example, for the proto package
{@code armeria.protocol}, the service name {@code CoolService} and the method name
{@code RunWithoutStubs}, the {@code uri} would be {@code /armeria.protocol.CoolService/RunWithoutStubs}.
If you aren't sure what the package, service name, and method name are for your method, you should
probably use normal gRPC stubs instead of this class.
grpc-protocol/src/main/java/com/linecorp/armeria/client/grpc/protocol/UnaryGrpcClient.java