我使用的是我在网上找到的API,用于使用curl查询远程Grin守护程序。我正在尝试将下面的bash curl请求转换为PHP,但是我不确定如何使用PHP的curl库传递$ curl -0 -XPOST -u grin:`cat ~/.grin/floo/.api_secret` --data '{"jsonrpc":"2.0","method":"retrieve_summary_info","params":[true, 10],"id":1}' http://127.0.0.1:13420/v2/owner
。
重击
grin:`cat ~/.grin/floo/.api_secret`
我对此命令感到困惑的主要部分如下:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://127.0.0.1:13420/v2/owner');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"jsonrpc\":\"2.0\",\"method\":\"retrieve_summary_info\",\"params\":[true, 10],\"id\":1}");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
return $result;
curl_close($ch);
如何将以上命令转换为PHP格式? 这是我到目前为止所拥有的:
{{1}}
答案 0 :(得分:1)
正如treyBake所说,您可以通过使用file_get_contents
并将其发送到带有CURLOPT_USERPWD
选项的cURL来获得它。像这样:
// your path needs to either be relative or full, no '~' allowed
// example: '/home/grin/.grin/floo/.api_secret'
$secret = file_get_contents(PATH);
if (!$secret)
return;
curl_setopt($ch, CURLOPT_USERPWD, "grin:$secret");