1

我正在尝试为 datadog api 编写一个 php curl,但它返回内部错误。这在 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);
4

1 回答 1

3

您用于发送数据的格式不符合文档要求,您的通话无法完成。

如果您更改$data为:

$data = [ 'tags' => ['env:prod'] ];

同意 API 返回的错误并没有真正的帮助,在 Datadog 中提出问题以纠正该行为并返回正确的错误代码而不是 500(它实际上是 500,您可以curl_getinfo($ch)在执行 curl 会话后通过打印看到它)。

于 2017-03-16T16:18:52.827 回答