索引
HttpBody
(消息)
HttpBody
表示任意 HTTP 正文的消息。它应仅用于无法表示为 JSON 的负载格式,例如原始二进制文件或 HTML 网页。
此消息可同时用于请求和响应中的流式传输和非流式传输 API 方法。
它可以用作顶级请求字段,如果想要将网址或 HTTP 模板中的参数提取到请求字段中,并且还希望访问原始 HTTP 正文,这会很方便。
示例:
message GetResourceRequest {
// A unique request id.
string request_id = 1;
// The raw HTTP body is bound to this field.
google.api.HttpBody http_body = 2;
}
service ResourceService {
rpc GetResource(GetResourceRequest)
returns (google.api.HttpBody);
rpc UpdateResource(google.api.HttpBody)
returns (google.protobuf.Empty);
}
流式传输方法示例:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
使用此类型仅会更改请求和响应正文的处理方式,所有其他功能将继续保持不变。
字段 | |
---|---|
content_type |
指定正文内容类型的 HTTP Content-Type 标头值。 |
data |
作为原始二进制文件的 HTTP 请求/响应正文。 |
extensions[] |
应用专用响应元数据。必须在流式传输 API 的第一个响应中设置。 |