提问人:newert 提问时间:11/13/2023 最后编辑:Brian Tompsett - 汤莱恩newert 更新时间:11/14/2023 访问量:52
为什么通过 API 使用基本 AUTH 的 CURL PUT 请求不发送 JSON 数据?
Why the CURL PUT request with basic AUTH via API doesn't send JSON data?
问:
我通过 API 使用基本 AUTH 发出 PHP CURL PUT JSON 请求:
$data = <<<JSON
{
"name": "John",
"age": "32",
"address": {
"city": "London",
"street": "Laxin street 32",
"zip": "32567"
}
} JSON;
这是我所拥有的:
$data_json = json_encode($data);
$url = "https://www.website.com/record?apiKey={API_KEY}";
$username = "user";
$password = "123abcd";
$encodedAuth = base64_encode($username.":".$password);
$curl = curl_init();
curl_setopt_array($curl, [CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_HTTPHEADER => array("Authentication : Basic ".$encodedAuth),
CURLOPT_USERPWD => $username.":".$password,
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_POSTFIELDS => $data_json,
CURLOPT_HTTPHEADER => [
"Cache-Control: no-cache",
"Content-Type: application/json",
"TOKEN: SAMPLE_TOKEN"],]);
$response = curl_exec($curl);
curl_close($curl);
作为回应,我获得了原始记录数据,而没有通过 API 发送的更改。
如何使用带有基本身份验证的 PHP 的 curl 请求 PUT?我尝试了一些类似问题的答案,但没有成功。
答: 暂无答案
评论
CURLOPT_HTTPHEADER
json_encode
CURLOPT_USERPWD
CURLOPT_HTTPAUTH