[英]PHP cURL Post API
我正在尝试使用BlockCypher API接受以太坊。 从他们的文档( https://dev.blockcypher.com/eth/#address-endpoint ),他们要求发送一个cURL请求以获取地址。
我已经试过了:-
<?php
$a = "https://api.blockcypher.com/v1/eth/main/addrs?token=my_token";
$b = file_get_contents($a);
var_dump($b);
?>
这给了我这个错误:-
Warning: file_get_contents(https://api.blockcypher.com/v1/eth/main/addrs?token=my_token): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\x\backend\dev\t.php on line 3
如果我尝试直接在Web上运行URL,则会收到此错误:-
Endpoint not found. Please check your URL for typos and make sure you're using the correct HTTP method (GET, POST, etc).
我在做什么错?
cURL请求通过cURL库完成 。 它们很可能会阻止来自其他客户端的请求,这些请求未(通过User-Agent字符串)标识为cURL。 您正在使用file_get_contents,这很容易,但带有“ PHP”用户代理字符串。
有关更多信息,请参见PHP文档中的cURL示例 。
编辑:现在在我看来您读错了API文档。 GET方法没有终结点/addrs
地址,您链接到的文档“比地址平衡终结点返回有关地址交易的更多信息,但牺牲了一些响应速度”。 要生成地址,您必须POST到该API的generate-adress端点 。
试试下面的代码,它将起作用:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.blockcypher.com/v1/eth/main/addrs/738d145faabb1e00cf5a017588a9c0f998318012",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_SSL_VERIFYHOST =>0,
CURLOPT_SSL_VERIFYPEER =>0,
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.