Php PSR-7请求如何工作?
我对基于PSR-7的请求如何工作感到困惑 作为PSR-7,请求必须实现Php PSR-7请求如何工作?,php,httprequest,psr-7,Php,Httprequest,Psr 7,我对基于PSR-7的请求如何工作感到困惑 作为PSR-7,请求必须实现PSR\Http\Message\RequestInterface。通过此接口,请求必须具有正文,并且必须将正文作为实现StreamInterface的对象返回 当我查看流接口时,更多的是处理资源 当我查看laravel或symfony的请求时,所有这些请求都有server、get、post和cookie参数。没有请求正文或类似内容 首先,为什么请求必须有一个主体(如响应),为什么请求主体必须包含一个资源,以及如何执行?请求不
PSR\Http\Message\RequestInterface
。通过此接口,请求必须具有正文,并且必须将正文作为实现StreamInterface
的对象返回
当我查看流接口时,更多的是处理资源
当我查看laravel或symfony的请求时,所有这些请求都有server、get、post和cookie参数。没有请求正文
或类似内容
首先,为什么请求必须有一个主体(如响应),为什么请求主体必须包含一个资源,以及如何执行?请求不仅仅是客户端,接收请求的服务器可以使用相同的接口。在那里,身体被流式传输是完全有意义的,因此服务器可以从网络上一点一点地读取,而不需要一次将其全部存储在内存中。接口中存在getBody
方法并不意味着每个请求都必须有一个body。它也可能是空的。Laravel/Symfony的请求绝对有一个请求正文。它可以通过$request->getContent()
访问@deceze我试图使用zendframework/zend diactoros,当我创建一个请求时,它迫使我定义一个主体。如果我使用“”或null,它将抛出错误。它要求实际的流资源。如果它可能是空的,为什么不在zend中?@TeomanTıngır表示它是可选的-“消息正文,如果有的话”。如果不设置一个,它似乎使用'php://temp“
作为值。试着把它设置成那样。