Php Zend_Http_响应的getRawBody()和getBody()方法之间的区别?
嗨,wondring,$response->getBody()和$response->getRawBody()之间有什么区别Php Zend_Http_响应的getRawBody()和getBody()方法之间的区别?,php,http,zend-framework,response,Php,Http,Zend Framework,Response,嗨,wondring,$response->getBody()和$response->getRawBody()之间有什么区别 getRawBody()按原样返回http响应的主体 getBody()针对某些标题进行调整,即解压缩使用gzip发送的内容或对内容编码标题进行放气。或分块传输编码头 在中找出这些问题的最简单方法是查看代码。这也是一次很好的学习经历。为了简洁起见,对代码进行了编辑 public function getRawBody() { return $this->bo
getRawBody()
按原样返回http响应的主体
getBody()
针对某些标题进行调整,即解压缩使用gzip发送的内容或对内容编码标题进行放气。或分块传输编码头
在中找出这些问题的最简单方法是查看代码。这也是一次很好的学习经历。为了简洁起见,对代码进行了编辑
public function getRawBody()
{
return $this->body;
}
public function getBody()
{
$body = '';
// Decode the body if it was transfer-encoded
switch (strtolower($this->getHeader('transfer-encoding'))) {
case 'chunked':
// Handle chunked body
break;
// No transfer encoding, or unknown encoding extension:
default:
// return body as is
break;
}
// Decode any content-encoding (gzip or deflate) if needed
switch (strtolower($this->getHeader('content-encoding'))) {
case 'gzip':
// Handle gzip encoding
break;
case 'deflate':
// Handle deflate encoding
break;
default:
break;
}
return $body;
}
HTTP主体可以以各种方式编码。 例如,可以将其拆分为不同的块,每个块前面都有块大小,或者gzip: getBody()将根据其编码类型返回已处理的HTTP正文。
getRawBody将按原样返回HTTP正文。我现在理解了区别,感谢您花时间回答,
public function getRawBody()
{
return $this->body;
}
public function getBody()
{
$body = '';
// Decode the body if it was transfer-encoded
switch (strtolower($this->getHeader('transfer-encoding'))) {
case 'chunked':
// Handle chunked body
break;
// No transfer encoding, or unknown encoding extension:
default:
// return body as is
break;
}
// Decode any content-encoding (gzip or deflate) if needed
switch (strtolower($this->getHeader('content-encoding'))) {
case 'gzip':
// Handle gzip encoding
break;
case 'deflate':
// Handle deflate encoding
break;
default:
break;
}
return $body;
}