1

我正在使用Github PHP Library。您可以使用Buzz HTTP 客户端进行特定调用,如下所示:

$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 );
}

但我真的只关心里面的内容headerscontent里面的内容。

有谁知道我如何直接访问这些元素而无需循环?

4

2 回答 2

2

如果您查看该对象类的源代码,您会发现有一个 getContent() 函数将检索内容字段的值。您还会注意到,该类扩展了 Buzz Client 的Response 类。Buzz Response 类又是AbstractMessage 类的扩展,该类具有 getHeaders() 函数和 getContent() 函数。

因此,基本上您可以使用通过继承提供的 getContent() 和 getHeaders() 函数访问这两个变量。

于 2013-06-19T05:42:05.643 回答
1

你试过这个吗?

$res = $client->getHttpClient()->get('repos/:user/:repo/events');
echo $res->remainingCalls;  // non private var

或者您应该能够调用响应类的每个公共方法

$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

于 2013-06-19T05:24:49.957 回答