首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP身份验证和请求/响应问题

PHP身份验证和请求/响应问题
EN

Stack Overflow用户
提问于 2014-08-16 20:37:26
回答 1查看 543关注 0票数 1

免责声明: php新手在这里工作非常努力。

我正在尝试构建一个与CallFire API交互的应用程序。

在这一点上,我所要做的就是与API建立一个通信,并成功地启动请求/响应周期。

我已经在我的XAMPP本地服务器上用Composer安装了Callfire SDK依赖项。我想让运行非常基本的示例:它实例化API,发送请求并解析响应。

代码语言:javascript
复制
<?php
use CallFire\Api\Rest\Request;
require 'vendor/autoload.php';

$client = CallFire\Api\Client::Rest("<api-login>", "<api-password>", "Broadcast"); //I'm using my valid CallFire API keys here.

$request = new Request\QueryBroadcasts;
$response = $client->QueryBroadcasts($request); //LINE 10

$broadcasts = $client::response($response);

foreach($broadcasts as $broadcast) {
    var_dump($broadcast);
}

我将这些代码放在一个index.php文件中,当我在浏览器中运行它时,我得到:

代码语言:javascript
复制
Notice: Trying to get property of non-object in C:\xampp\htdocs\cfireapi1\vendor\callfire\php-sdk\src\CallFire\Api\Rest\Response.php on line 39

Notice: Trying to get property of non-object in C:\xampp\htdocs\cfireapi1\vendor\callfire\php-sdk\src\CallFire\Api\Rest\Response.php on line 39

Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Response type not recognized' in C:\xampp\htdocs\cfireapi1\vendor\callfire\php-sdk\src\CallFire\Api\Rest\Response.php:50 
Stack trace: #0 C:\xampp\htdocs\cfireapi1\vendor\callfire\php-sdk\src\CallFire\Api\Rest\AbstractClient.php(59): CallFire\Api\Rest\Response::fromXml(false) 
#1 C:\xampp\htdocs\cfireapi1\index.php(10): CallFire\Api\Rest\AbstractClient::response(false) 
#2 {main} thrown in C:\xampp\htdocs\cfireapi1\vendor\callfire\php-sdk\src\CallFire\Api\Rest\Response.php on line 50

AbstractClient.php中的第59行是

代码语言:javascript
复制
public static function response($data, $type = self::FORMAT_XML)
{
    if (is_string($data) && strlen($data) === 0) {
        return true; // Many operations return an empty string for success
    }
    switch ($type) {
        case static::FORMAT_XML:
            return AbstractResponse::fromXml($data); // LINE 59
        case static::FORMAT_JSON:
            return AbstractResponse::fromJson($data);
    }
    throw new InvalidArgumentException("Type must be 'xml' or 'json'");
}

Response.php中的第39行和第50行是

代码语言:javascript
复制
public static function fromXml($document)
    {
        $document = static::getXmlDocument($document);
        // return print_r($document);
        switch ($document->firstChild->nodeName) { // LINE 39 error for this line is Notice: Trying to get property of non-object 
            case 'r:ResourceList':
                return Response\ResourceList::fromXml($document);
            case 'r:Resource':
                return Response\Resource::fromXml($document);
            case 'r:ResourceReference':
                return Response\ResourceReference::fromXml($document);
            case 'r:ResourceException':
                return Response\ResourceException::fromXml($document);
        }
        throw new UnexpectedValueException('Response type not recognized'); // LINE 50: this is what throws the fatal error exception 


    }

第10行在示例代码中突出显示。

所以我知道API是用一个身份不明的类型返回一个响应。为什么,如果我真的在使用SDK和文档中的一个基本示例?我如何检查我得到的反应,看看它到底是什么?我尝试使用r_print在Response.php文件中打印响应,但在浏览器中打印了一个"1“。这对我来说毫无意义。是因为我在浏览器里运行这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-17 23:05:39

解决办法:在本地主机环境中运行程序是导致问题的原因。一旦我将应用程序上传到我的服务器上,一切就都正常了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25343757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档