【问题标题】:cURL PUT is returning only bool(false) with PHPcURL PUT 只返回 bool(false) 和 PHP
【发布时间】: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_PUT stackoverflow.com/questions/44918152/…
  • @nice_dev 这不是我正在做的事情,上面写着:“Content-Type: application/json”, ?
  • 原来只是改变 curl_setopt($curl, CURLOPT_PUT, true);到 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");解决了这个问题。感谢您的链接@nice_dev
  • @JenniferHamilton 啊,忽略了这一点。很高兴为您提供帮助

标签: php curl put


【解决方案1】:

我不知道为什么,但是将 curl_setopt($curl, CURLOPT_PUT, true); 更改为 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); 解决了这个问题。我正在收集 CURLOPT_PUT, true 期待一个文件,而 CURLOPT_CUSTOMREQUEST, "PUT" 期待更新字符串。

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2017-10-24
    相关资源
    最近更新 更多