首页 > 解决方案 > 如何检查页面是否存在于 Restful API(即 PokeAPI)中?

问题描述

这里对 PHP 非常陌生。我正在玩 PokeAPI 并想检查是否存在数据条目。在 API 本身上,一个指向无效数字页面的链接(例如https://pokeapi.co/api/v2/pokemon/6666666/)给出了以下信息:

{"detail":"Not found."}

如果条目为空/无效,我希望在我的应用程序上显示一条消息。这是我写的代码(我在另一个页面上有一个提供整数'dexno'的表格):

if (!empty($_POST["dexno"])) {
      $dexno = $_POST["dexno"];
      $data = file_get_contents($base.$dexno);
      if ($data != "") {
        $pokemon = json_decode($data);
        $img = $pokemon->sprites->front_default;
        $imageData = base64_encode(file_get_contents($img));
        echo '<img src="data:image/png;base64,'.$imageData.'">';
      }
      else{
        die("No Pokemon found.");
      }
    }

当我在浏览器中运行它时,我遇到以下消息:

(!)警告:file_get_contents(http://pokeapi.co/api/v2/pokemon/6666666):打开流失败:HTTP请求失败!第 24 行的 C:\wamp64\www\pokemon\process.php 中未找到 HTTP/1.1 404

显示后,“未找到口袋妖怪”。消息显示正确。关于什么可能是错的任何想法?我可能错过了一些细节,所以请随时提问:)

标签: php

解决方案


推荐阅读