【发布时间】:2023-01-13 10:17:36
【问题描述】:
在成功检索媒体 URL 并将其存储在文件请求的 $mediaURL 变量中后,我使用以下代码行 (PHP),但它返回一个空字符串。已经尝试使用邮递员并返回 500 内部服务器错误...
** 已编辑 **
self::writeLog('Media URL: '.$mediaURL);
self::writeLog('Preparing to download media - id: '.$media_id);
$curl = curl_init($mediaURL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Authorization: Bearer ".self::$auth_token,
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
if (($resp = curl_exec($curl)) === false) {
self::writeLog('cURL Error: '.curl_error($curl));
} else if ($resp == '') {
self::writeLog('Empty string.');
self::writeLog('URL: '.$mediaURL);
self::writeLog('Headers: '.$headers[0]);
} else {
self::writeLog($resp);
}
- writeLog 只是我用来将这些消息写入 txt 文件的一种方法。
【问题讨论】:
-
没有选项
CURL_URL,它是CURLOPT_URL。您不需要同时指定它和 curl_init() 的参数,它们是相同的。看在神圣的份上,不要禁用 SSL 检查。您也永远不会调用 curl_exec()。 -
检查你的 php 错误日志。正如@AlexHowansky 指出的那样,仅通过检查错误日志即可轻松识别此代码中的错误。
-
@AlexHowansky 我用更多细节和 CURLOPT_URL 更正更新了这个问题......
-
使用 curl_getinfo() 和/或 CURLOPT_VERBOSE 调试连接。