在 PHP 中,我尝试使用 Github API 从我的私人存储库获取下载链接。
我计划在 PHP 中使用 cURL,但我不知道如何检索/生成临时下载链接。我尝试直接回显$response,似乎代码都是未知字符。
下面是我的代码:
$token = 'abcdef';
$url = 'https://api.github.com/repos/meiuser/ai/zipball';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/vnd.github+json',
'Authorization: Bearer ' . $token,
'X-GitHub-Api-Version: 2022-11-28',
'User-Agent: ai'
]);
$response = curl_exec($ch);
curl_close($ch);
由于您已将 cURL 设置为遵循 Location 标头,因此它将默默地转到 API 提供的 URL(根据该文档),然后下载结果 - 您看到的这些字符是 zip 文件的二进制内容下载链接指向哪个。
如果您想要下载链接,请告诉curl 不要遵循重定向。然后从初始请求返回的 Location 标头中获取链接。
这些步骤应该对您有帮助:
删除这一行,它告诉 cURL 遵循重定向:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
并在
curl_exec
命令之后添加以下内容:
$info = curl_getinfo($ch, CURLINFO_REDIRECT_URL);
echo $info;