PHP CURL PUT功能不起作用

时间:2016-06-02 07:37:52

标签: php curl

我想向一个不起作用的java服务发出一个put请求,即使它没有显示任何描述性错误。

include './rootURL.php';

$header = array("Content-Type: application/json");

$prop_key = 'prop key value';

$data = array();
$data = json_decode(file_get_contents('php://input'), true);
$id = $data["id"];

$url = $rooturl.'cancelBooking/'.$prop_key.'/'.$id;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_TIMEOUT, 75);
$result = curl_exec($ch);

error_log($result);            
echo $result;

以上是我的php脚本,并且URL听到的是我想要的方式,我认为URL中没有任何错误。服务工作也很好我用swagger测试它并且工作正常。

当我记录错误时,我收到了类似的内容。

[Thu Jun 02 12:56:38.813140 2016] [:error] [pid 6290] [client127.0.0.1:39198] , referer: http://localhost/adminPanel/booking.php

1 个答案:

答案 0 :(得分:0)

您似乎没有将数据放在任何地方。

我有一个允许放置数据的服务,这个代码是我使用的

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$return = curl_exec($ch);

此行curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));包含我提交的数据,但我在您的代码中找不到此行。

再次检查您的代码并找到您在网址$prop_key = 'prop key value';中使用的$url = $rooturl.'cancelBooking/'.$prop_key.'/'.$id;

将网址更改为$url = $rooturl.'cancelBooking/'.urlencode($prop_key).'/'.$id; ,因为空格可能有问题。