Index
HttpBody(Meldung)
HttpBody
Diese Nachricht repräsentiert einen beliebigen HTTP-Text. Sie sollte nur für Nutzlastformate verwendet werden, die nicht als JSON dargestellt werden können, z. B. binäre Rohdaten oder eine HTML-Seite.
Diese Nachricht kann sowohl für Streaming- als auch Nicht-Streaming-API-Methoden in der Anfrage sowie in der Antwort verwendet werden.
Diese Nachricht kann als übergeordnetes Anfragefeld verwendet werden. Das ist praktisch, wenn Sie Parameter aus der URL- oder HTTP-Vorlage in die Anfragefelder extrahieren und auch auf die Rohdaten des HTTP-Hauptteils zugreifen möchten.
Beispiel ohne Streaming-Methoden:
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);
}
Beispiel mit Streamingmethoden:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
Durch die Verwendung dieses Typs wird nur die Art und Weise geändert, wie der Anfrage- und Antwort-Nachrichtenkörper gehandhabt wird. Alle anderen Funktionen funktionieren weiterhin wie gewohnt.
| Felder | |
|---|---|
content_ |
Der HTTP Content-Type-Headerwert, der den Inhaltstyp des Textes angibt. |
data |
Der HTTP-Anfrage- oder Antworttext als Rohbinärdatei. |
extensions[] |
Anwendungsspezifische Antwortmetadaten. Sie muss in der ersten Antwort für Streaming-APIs festgelegt werden. |