提问人:user20986345 提问时间:10/20/2023 最后编辑:user20986345 更新时间:10/20/2023 访问量:31
如何复制此 mpv socat 命令但作为 PHP 8.2 cURL 请求?
How to replicate this mpv socat command but as a PHP 8.2 cURL request?
问:
我正在尝试使用 mpv 的 API。我遵循了这个: https://mpv.io/manual/master/#json-ipc
- 我从 mpv 开始: .
mpv /path/to/file.mkv --input-ipc-server=/tmp/mpvsocket
- 我在终端中运行,它有效(返回 JSON 输出)。
echo '{ "command": ["get_property", "playback-time"] }' | socat - /tmp/mpvsocket
现在我花了无数个小时无法将其复制为 PHP 8.2 cURL 代码。这只是我尝试过的众多不同变体中的最新一种。是的,我尝试过在没有 、 和 不使用 JSON 编码的情况下使用它,以及几乎所有有人可以建议的“明显”的东西。它们都不起作用。CURLOPT_URL
$POST_data =
[
'command' => [ "get_property", "playback-time" ]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/tmp/mpvsocket');
curl_setopt($ch, CURLOPT_UNIX_SOCKET_PATH, '/tmp/mpvsocket');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($POST_data));
//curl_setopt($ch, CURLOPT_ABSTRACT_UNIX_SOCKET, '/tmp/mpvsocket');
curl_setopt($ch, CURLOPT_VERBOSE, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
var_dump(curl_error($ch));
输出为:
* Closing connection -1
bool(false)
string(0) ""
上下文:Debian Linux。PHP 8.2 中。
我从同一种代码发出 HTTP(S) 请求,即使是对 localhost 的请求,也没有问题。这似乎只有在涉及“Unix 套接字”时才有问题。但是PHP的cURL早就支持这一点,所以它没有任何意义。是的,我已经检查过了,所以存在。/tmp/mpvsocket
可能出了什么问题?
答: 暂无答案
评论
CURLOPT_UNIX_SOCKET_PATH