【问题标题】:Soundcloud resolve issueSoundcloud 解决问题
【发布时间】:2013-01-16 17:57:13
【问题描述】:

我正在为 SoundCloud 开发一个应用程序,用 PHP 编写,我使用 php-soundcloud 库。

成功实例化 Services_Soundcloud 实例后,我可以进行如下调用:

echo $soundcloud->get('me');
echo $soudcloud->get('users/12345678');

但是,以下调用不起作用:

echo $soundcloud->get('resolve', array('url' => 'https://soundcloud.com/webfordreams'));

我得到的错误是:

Services_Soundcloud_Invalid_Http_Response_Code_Exception:请求的 URL 在 Services_Soundcloud->_request() 中以 HTTP 代码 302 响应(../php-soundcloud/Services/Soundcloud.php 的第 933 行)。

经过几个小时的调试,我决定寻求帮助,因为我真的不明白我做错了什么。

谁能帮助我并告诉我如何得到正确的回应?

【问题讨论】:

    标签: php api curl soundcloud


    【解决方案1】:

    从 Francis.G 所说的开始您正在寻找的语法是:

    $soundcloud->get('resolve', array('url' => 'https://soundcloud.com/webfordreams'), array(CURLOPT_FOLLOWLOCATION => true);
    

    唯一的变化是 curl-ops 数组的定义作为第三个参数传递给get() 函数。

    【讨论】:

      【解决方案2】:

      您获得的“HTTP/1.1 302”响应是根据api 的适当响应。 如果你检查完整的 php 异常,你会在响应正文中得到这个:

      [httpBody:protected] => {"status":"302 -Found","location":"https://api.soundcloud.com/users/25071103"}
      

      为了允许 CURL 跟随重定向,您需要在调用 soundcloud 的 get() 函数时传递 CURLOPT_FOLLOWLOCATION 选项。

      $result = $scloud->get('resolve', array('url' => 'https://soundcloud.com/webfordreams'), array(CURLOPT_FOLLOWLOCATION => TRUE ));
      

      虽然我不太确定语法,但您最终想要在 Soundcloud 的 _request() 函数中得到类似这样的东西:

      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
      

      希望在这方面有更多经验的人会出现并为您提供正确的语法,而不是您必须修补 SoundCloud SDK 本身。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多