gRPC是否可以支持“ x-www-form-encoded”数据?

I am trying to accept a POST request from an external service, but the data is x-www-form-encoded data. Our system is gRPC, but we use grpc-gateway to pass json rest requests.

If I add to following to my .proto file

rpc Action(ActionRequest) returns (ActionResponse) {
    option (google.api.http) = {
        post: "/v1/action"
        body: "*"
    };
}

Any messages I try and create will fail with

`invalid character 'p' looking for beginning of value - Error: rpc error: code = InvalidArgument desc = invalid character 'p' looking for beginning of value`

This makes sense as 'p' is the first character of the x-www-form-encoded data (payload is the object name).

It would so far appear I don't have access to the raw request body, and it seems it may be possible with a custom marshaller that feels like overkill, and probably out of scope.

However I cannot for the life of me see how to access this data. I have tried adding another proto from googleapis. However I have found the documentation for this aspect of gRPC difficult to follow and I may be doing it wrong.