【发布时间】:2020-12-13 18:12:18
【问题描述】:
我有一个 API 源并想在我的控制器中处理它。
$user = "myuser";
$pass = "mypass";
$url = "http://myurlforapi/StockSummary?userid='5'";
//$url = "https://pokeapi.co/api/v2/pokemon/132/";
$opts = array(
'http' => array(
'method' => "GET",
'header' => "Authorization: Basic " . base64_encode("$user:$pass")
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$data= file_get_contents($url, false, $context);
print($data);
当我将 URL 更改为 pokeapi.co 时,会显示数据。但是,当我使用 myurlforapi 时,不会显示任何数据。我错过了什么吗?或者在我的域中需要做一些配置?
更新:
A PHP Error was encountered
Severity: Warning
Message: file_get_contents(http://myurlforapi/StockSummary?userid=5): failed to open stream: Connection refused
Filename: backend/Dashboard.php
Line Number: 51
Backtrace:
File: /home/u9354272/public_html/xxx/modules/dashboard/controllers/backend/Dashboard.php
Line: 51
Function: file_get_contents
File: /home/u9354272/public_html/xxx/index.php
Line: 339
Function: require_once
注意:当我使用 Postman 时,它可以工作。当我在我的虚拟主机中使用它时,它不起作用
【问题讨论】:
-
可能是因为您的网址中的撇号?尝试用
%27替换它们,或者更好地更改你的api,这样它就可以在没有撇号的情况下接听电话,比如http://myurlforapi/StockSummary?userid=5 -
不幸的是它不起作用
-
如果您在浏览器中输入您的 API URL,您会得到什么?
-
一些错误文本。因为用户需要有身份验证。我添加了一些错误响应。
-
请查看最新更新
标签: php api rest codeigniter