协议
Loader
在 fuchsia.net.http/client.fidl 中定义
HTTP 和 HTTPS 加载器。
该加载器可以同时处理多个 HTTP 或 HTTPS 请求。该加载器会跟踪所有未完成的请求,如果客户端关闭加载器接口,则会取消所有请求。
Fetch
启动给定的 HTTP 或 HTTPS 请求,跟踪重定向,并返回最终响应。
加载器将跟踪重定向(不超过实现定义的限制),并返回最终响应作为对此消息的回复。如需取消请求,请关闭加载器接口,或关闭 request
中包含的 event
的对等方。
请求
名称 | 类型 |
---|---|
request |
Request
|
回复
名称 | 类型 |
---|---|
response |
Response
|
开始
发起指定的 HTTP 或 HTTPS 请求,并将所有中间响应返回到给定客户端。
与 Fetch
不同,Start
不会自动跟踪所有重定向。相反,重定向链中的每个响应都会传递到 LoaderClient
。
请求
名称 | 类型 |
---|---|
request |
Request
|
client |
LoaderClient
|
LoaderClient
在 fuchsia.net.http/client.fidl 中定义
与 Loader.Start
搭配使用的客户端接口。
关闭底层通道将取消关联的 HTTP 事务。
OnResponse
当收到 HTTP 响应时,由加载器调用。
如果服务器请求了重定向,则 response
表中的 redirect
将描述服务器请求的目标。如需跟踪重定向,请回复本邮件。如果不遵循重定向,请关闭底层渠道。
请求
名称 | 类型 |
---|---|
response |
Response
|
回复
<空>
结构
标题
在 fuchsia.net.http/client.fidl 中定义
HTTP 标头字段。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
name |
HeaderName
|
标头字段的名称。 |
无默认值 |
value |
HeaderValue
|
标头字段的值。 |
无默认值 |
枚举
错误严格
类型:uint32
在 fuchsia.net.http/client.fidl 中定义
HTTP 事务期间发生错误。
名称 | 值 | 说明 |
---|---|---|
内部 |
1 |
发生了一些其他问题,无法使用其中一个更具体的状态进行分类。重试是可选操作。 |
无法同步 |
2 |
HTTP 解析错误。 |
频道已关闭 |
3 |
表示通道(客户端或正文发送者)已关闭。 |
连接 |
4 |
连接时出错。 |
DEADLINE_EXCEEDED |
5 |
请求中指定的期限已过 |
表格
RedirectTarget
在 fuchsia.net.http/client.fidl 中定义
对服务器请求的重定向的说明。
HTTP 重定向的语义因用于生成重定向的状态代码而异。此结构可确保加载器及其客户端对来自服务器的重定向响应的解读一致。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
method |
Method
|
服务器为重定向建议的 HTTP 方法。 |
2 |
url |
fuchsia.url/Url
|
服务器为重定向建议的网址。 |
3 |
referrer |
fuchsia.url/Url
|
服务器为重定向建议的引荐来源网址。 |
请求资源
在 fuchsia.net.http/client.fidl 中定义
HTTP 请求。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
method |
Method
|
HTTP 方法(如果适用)。 默认为“GET”。 |
2 |
url |
fuchsia.url/Url
|
要加载的网址。 必选。 |
3 |
headers |
vector<Header>
|
其他 HTTP 请求标头。 |
4 |
body |
Body
|
请求正文的载荷。对于 HTTP 请求,方法必须设置为“POST”或“PUT”。如果正文使用缓冲区,系统会自动添加 Content-Length 标头。 |
5 |
deadline |
zx/Time
|
确定何时放弃等待服务器响应。如果未提供截止时间,则实现将提供一个合理的默认值。 |
响应资源
在 fuchsia.net.http/client.fidl 中定义
对 HTTP 请求的响应。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
error |
Error
|
如果响应导致了网络级错误,则将设置此字段。 |
2 |
body |
handle<socket>
|
响应正文。 |
3 |
final_url |
fuchsia.url/Url
|
跟踪重定向后的响应的最终到达网址。 |
4 |
status_code |
uint32
|
HTTP 状态代码。 |
5 |
status_line |
vector<uint8>
|
HTTP 状态行。 |
6 |
headers |
vector<Header>
|
HTTP 响应标头。 |
7 |
redirect |
RedirectTarget
|
对服务器请求的重定向的说明(如果有)。 |
联合
正文严格 资源
在 fuchsia.net.http/client.fidl 中定义
HTTP 请求的正文。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
buffer |
fuchsia.mem/Buffer
|
一个包含完整请求或响应正文的缓冲区。 |
2 |
stream |
handle<socket>
|
将包含流式传输请求或响应正文的套接字。 |
别名
名称 | 值 | 说明 |
---|---|---|
标头名称 |
vector [fidl/MAX ] |
包含标头名称的字节矢量的易记别名。 |
标头值 |
vector [fidl/MAX ] |
包含标头值的字节矢量的易记别名。 |
方法 |
string [1024 ] |