php datadog 的 curl api
php curl for datadog api
我正在尝试为 datadog api 编写 php curl,但它 return 内部错误。这在 bash 脚本中有效,但在 phpcurl 中转换时抛出错误。有人可以帮我解决这个问题吗?
$data = [
'tags' => '[env:prod]'
];
$headers = [
'Accept: application/json',
'Content-Type: application/json'
];
$tagUrl="https://app.datadoghq.com/api/v1/tags/hosts/".$host."?api_key=".$api_key."&application_key=".$app_key;
$http_method='POST';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $tagUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
$out=curl_exec($ch);
您用于发送数据的格式不符合 documentation,您的呼叫无法完成。
如果您将 $data
更改为:
,通话将正常进行
$data = [ 'tags' => ['env:prod'] ];
同意 return 由 API 编辑的错误并没有真正帮助,在 Datadog 中提交了一个问题以更正该行为并且 return 正确的错误代码而不是 500 (它实际上是 500,您可以在执行 curl 会话后通过打印 curl_getinfo($ch)
来查看它)。
我正在尝试为 datadog api 编写 php curl,但它 return 内部错误。这在 bash 脚本中有效,但在 phpcurl 中转换时抛出错误。有人可以帮我解决这个问题吗?
$data = [
'tags' => '[env:prod]'
];
$headers = [
'Accept: application/json',
'Content-Type: application/json'
];
$tagUrl="https://app.datadoghq.com/api/v1/tags/hosts/".$host."?api_key=".$api_key."&application_key=".$app_key;
$http_method='POST';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $tagUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
$out=curl_exec($ch);
您用于发送数据的格式不符合 documentation,您的呼叫无法完成。
如果您将 $data
更改为:
$data = [ 'tags' => ['env:prod'] ];
同意 return 由 API 编辑的错误并没有真正帮助,在 Datadog 中提交了一个问题以更正该行为并且 return 正确的错误代码而不是 500 (它实际上是 500,您可以在执行 curl 会话后通过打印 curl_getinfo($ch)
来查看它)。