【发布时间】:2021-08-02 05:42:32
【问题描述】:
我正在使用以下代码:
<?php
$url = "https://api.challonge.com/v1/tournaments/hamiltonjenn/matches/245771359.json";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_PUT, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Accept: application/json",
"Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"Content-Type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = '{"match":{"player1_votes": 4}}';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
?>
var_dump 只显示 bool(false)
任何想法为什么会发生这种情况?我无法确定这不起作用的原因。
【问题讨论】:
-
您还需要将标头发送为
content-type:application/json?另请参阅CURLOPT_PUTstackoverflow.com/questions/44918152/… -
@nice_dev 这不是我正在做的事情,上面写着:“Content-Type: application/json”, ?
-
原来只是改变 curl_setopt($curl, CURLOPT_PUT, true);到 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");解决了这个问题。感谢您的链接@nice_dev
-
@JenniferHamilton 啊,忽略了这一点。很高兴为您提供帮助