通过PHP / Curl返回错误使用CloudFlare API
我正在通过
PHP脚本更新我的DNS.我查看了与cURL相关的API文档,所以我试图将cURL帖子转换为PHP.
我有以下代码: $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,"https://api.cloudflare.com/client/v4/zones/<MY_ZONE>/dns_records/<MY_ID>"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_VERBOSE,CURLOPT_CUSTOMREQUEST,"PUT"); $fields = array(); $fields["X-Auth-Email"] = "someone@mydomain.com"; $fields["X-Auth-Key"] = "MY_KEY"; $fields["Content-Type"] = "application/json"; curl_setopt($ch,CURLOPT_HTTPHEADER,$fields); $dnsData = array(); $dnsData["id"] = "MY_ID"; $dnsData["type"] = "A"; $dnsData["name"] = "home"; $dnsData["content"] = $newIPAddress; curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($dnsData)); echo "posting to API<br />"; $result = curl_exec($ch); echo "Result: " . $result; 通过上面的代码,我收到了来自Cloudflare的以下回复.
我已经尝试将json_encode更改为http_build_query,但两者都返回相同的错误. 解决方法
我认为你是在滥用curl_setopt.
这是设置多个标头的正确方法: curl_setopt($ch,['HeaderName: HeaderValue','HeaderName2: HeaderValue2']); 编辑 为了更清楚: $headers = [ 'X-Auth-Email: someone@mydomain.com','X-Auth-Key: MY_KEY','Content-Type: application/json' ]; curl_setopt($ch,$headers); 标题不是键/值对,而只是值. 此外,您应该使用http_build_query()发送POST数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |