Coroutine\Http2\Client->send
最后更新于:2022-04-02 06:27:41
# Coroutine\\Http2\\Client->send
[TOC]
向服务器发送请求,底层会自动建立一个`Http2`的`stream`。可以同时发起多个请求。
~~~
function Coroutine\Http2\Client->send(swoole_http2_request $request) : int | false
~~~
* 接受`swoole_http2_request`类的对象作为参数
* 成功返回流的编号,编号为从`1`开始自增的奇数
* 失败返回`false`
## Request对象
`swoole_http2_request`对象没有任何方法,通过设置对象属性来写入请求相关的信息。
* `headers`数组,`HTTP`头
* `method`字符串,设置请求方法,如`GET`、`POST`
* `path`字符串,设置`URL`路径,如`/index.php?a=1&b=2`,必须以`/`作为开始
* `cookies`数组,设置`COOKIES`
* `data`设置请求的`body`,如果为字符串时将直接作为`RAW form-data`进行发送
* `data`为数组时,底层自动会打包为`x-www-form-urlencoded`格式的`POST`内容,并设置`Content-Type`为`application/x-www-form-urlencoded`
* `pipeline`布尔型,如果设置为`true`,发送完`$request`后,不关闭`stream`,可以继续写入数据内容
## PIPELINE
默认`send`方法在发送请求之后,会结束当前的`Http2 Stream`,启用`PIPELINE`后,底层会保持`stream`流,可以多次调用`write`方法,向服务器发送数据帧,请参考`write`方法。
';