Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page.
This message can be used both in streaming and non-streaming API methods in the request as well as the response.
It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body.
Example:
message GetResourceRequest {
// A unique request id.
string requestId = 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);
}
Application specific response metadata. Must be set in the first response for streaming APIs.
An object containing fields of an arbitrary type. An additional field "@type" contains a URI identifying the type. Example: { "id": 1234, "@type": "types.example.com/standard/id" }.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-09 UTC."],[[["\u003cp\u003eThis content describes the \u003ccode\u003egoogle.api.HttpBody\u003c/code\u003e message, which is designed to represent HTTP bodies in formats not representable as JSON, such as binary data or HTML.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eHttpBody\u003c/code\u003e message can be used in both streaming and non-streaming API methods, functioning in requests and responses.\u003c/p\u003e\n"],["\u003cp\u003eThe message can be utilized as a top-level request field, enabling parameter extraction from URLs or HTTP templates while providing access to the raw HTTP body.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eHttpBody\u003c/code\u003e message has three fields: \u003ccode\u003econtentType\u003c/code\u003e (the content type of the body), \u003ccode\u003edata\u003c/code\u003e (the raw binary data, encoded as a base64 string), and \u003ccode\u003eextensions\u003c/code\u003e (application-specific metadata, including a type identifier).\u003c/p\u003e\n"],["\u003cp\u003eThe use of the \u003ccode\u003eHttpBody\u003c/code\u003e message affects only how request and response bodies are handled, leaving other features in the requests and responses unaffected.\u003c/p\u003e\n"]]],[],null,[]]