Coinkite API - 方法不允许状态:405使用PHP cURL POST - 为什么?

时间:2015-09-14 18:10:45

标签: php api curl

我收到错误:

  

{" message":" Method Not Allowed"," status":405}

尝试创建新的接收地址时。根据{{​​3}}我的API密钥有" recv"权限。

API doc是API doc关于将args发送到端点的内容。唯一需要的参数是帐户,我在POST中尝试cURL

我怀疑我没有正确设置cURL选项。

这是我的代码:

$endpoint='/v1/new/receive';

$url='https://api.coinkite.com'.$endpoint;

$sign = coinkitesign($endpoint);
$API_KEY = COINKITEAPIKEY;

$ch = curl_init($url);

curl_setopt($ch,CURLOPT_HTTPHEADER,array("X-CK-Key: {$API_KEY}", "X-CK-Sign: {$sign[0]}", "X-CK-Timestamp: {$sign[1]}"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, true);
$data = array('account' => '933xxxxx2A-Axxxx5','memo' => 'test1234');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($ch);
curl_close($ch);

echo $result;

2 个答案:

答案 0 :(得分:1)

您需要执行PUT请求,而不是POST

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

您应该始终在API文档中仔细检查您接受的方法:https://docs.coinkite.com/api/new-update.html

答案 1 :(得分:0)

确实解决方案是使用put - 这是我需要的代码:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
$data = array('account' => 'xxxxxx-xxxxxx','memo' => 'test1234');
$data = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);