无法确定为什么我从 Challonge 收到 404 API

Unable to determine why I recieve a 404 from Challonge API

我正在 Ubuntu 服务器上工作,试图将 PHP 包装器用于 Challonge API。我只能返回 404 错误代码。我一直在调试包装器以查看哪里出了问题。以下是我的一些观察。

我的主要 PHP 看起来像这样

include('challonge.class.php');

$c = new ChallongeAPI(API_Key); //I have tried this with just my key, as well as in '' and ""

$t = $c->getTournaments();
echo $c->status_code; //This should echo out 200 if it all works correctly

上面的代码没有产生任何结果,所以我深入研究了 challonge.class.php(包装器),看看我是否能找到问题所在。我发现 status_code 在 switch 语句打印错误之前会是 404,但我从未看到任何错误。这是我确定问题所在的代码段

$curl_result = curl_exec($curl_handle);
$info = curl_getinfo($curl_handle);
$this->status_code = (int) $info['http_code']; //status_code is 404 here

$return = false;
if ($curl_result === false) { 
  // CURL Failed
  $this->errors[] = curl_error($curl_handle);
} else {
  switch ($this->status_code) {
    case 401: // Bad API Key
    case 422: // Validation errors
    case 404: // Not found/Not in scope of account
      //Everything is good here
      $return = $this->result = new SimpleXMLElement($curl_result);
      //Everything went wrong; cannot echo anything
      foreach($return->error as $error) {
        $this->errors[] = $error;
      }
      $return = false;
      break;
      ...

对我来说,这意味着 new SimpleXMLElement($curl_result); 导致了问题。但是我不知道如何找出原因。据我所知,无论我为什么收到 404,SimpleXML 都安装得很好。我不知道这里发生了什么或我犯了什么错误。

更新:

这个问题我自己解决了。创建 SimpleXMLElement 会引发错误的原因是因为 Challonge 给我一个 404 错误页面而不是 xml 响应。这是因为挑战 API 的 PHP 包装器已过时。

插件使用这种URL格式发送请求

$call_url = "https://challonge.com/api/v1/".$path.'.xml';

API 将 HTTP 请求的正确 URL 格式描述为

$call_url = "https://api.challonge.com/v1/".$path.'.xml';

在包装器中进行这个简单的更改 class 解决了问题

这个问题我自己解决了。创建 SimpleXMLElement 会引发错误的原因是因为 Challonge 给我一个 404 错误页面而不是 xml 响应。这是因为挑战 API 的 PHP 包装器已过时。

插件使用这种URL格式发送请求

$call_url = "https://challonge.com/api/v1/".$path.'.xml';

API 描述了发出 HTTP 请求的正确 URL 格式

$call_url = "https://api.challonge.com/v1/".$path.'.xml';

在包装器中进行这个简单的更改 class 解决了问题