我正在使用Github PHP Library。您可以使用Buzz HTTP Client进行特定调用,如下所示:
$client->getHttpClient()->get('repos/:user/:repo/events');
问题是该请求的返回是我不确定如何访问元素的原因:
Github\HttpClient\Message\Response Object
(
[remainingCalls] =>
[protocolVersion:Buzz\Message\Response:private] => 0
[statusCode:Buzz\Message\Response:private] => 200
[reasonPhrase:Buzz\Message\Response:private] => OK
[headers:Buzz\Message\AbstractMessage:private] =>
[content:Buzz\Message\AbstractMessage:private] =>
)
现在我可以循环执行对象,执行以下操作:
foreach( $events as $item ) {
print_r( $item );
}
但我真的只关心headers
和content
内的内容。
是否有人知道如何直接访问这些元素而无需循环?
答案 0 :(得分:2)
如果查看object class的来源,您会看到有一个getContent()函数可以检索内容字段的值。您还会注意到此类扩展了来自Buzz客户端的Response class。反过来,Buzz Response类是AbstractMessage class的扩展,它具有getHeaders()函数和getContent()函数。
基本上你可以使用通过继承提供的getContent()和getHeaders()函数来访问这两个变量。
答案 1 :(得分:1)
$res = $client->getHttpClient()->get('repos/:user/:repo/events');
echo $res->remainingCalls; // non private var
或者您应该能够调用Response Class的每个公共方法
$res->getStatusCode();
$res->getProtocolVersion();
在此检查可能的方法:
https://github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Message/Response.php
https://github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Message/AbstractMessage.php