我想向一个不起作用的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
答案 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;
,因为空格可能有问题。