Мой JSON ниже, который проверяет штрафа (числа являются фиктивными числами!). Эта строка присваивается переменной $payload
,
[{
"method": "GET",
"relative_url": "series/4/events/?expand=ticket_classes"}, {
"method": "GET",
"relative_url": "series/5/events/?expand=ticket_classes"}, {
"method": "GET",
"relative_url": "series/6/events/?expand=ticket_classes"}, {
"method": "GET",
"relative_url": "series/7/events/?expand=ticket_classes"}, {
"method": "GET",
"relative_url": "series/8/events/?expand=ticket_classes"}, {
"method": "GET",
"relative_url": "series/9/events/?expand=ticket_classes"}]
Мой PHP выглядит следующим образом:
$url = "https://www.eventbriteapi.com/v3/batch/?token=".$token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS,$payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($payload))
);
curl_setopt($ch, CURLOPT_POST, 1);
$body = \curl_exec($ch);
curl_close($ch);
$json = \json_decode($body,true);
echo $body;
Эхо выплевывает:
{"status_code": 400, "error_description": "You passed a request body that was not in JSON format.", "error": "INVALID_BODY"}
Кажется, все хорошо — я что-то упускаю очевидное?
Когда я передаю данные через https://www.eventbriteapi.com сайт, для каждого я получаю ответ тела, который просто содержит детали нумерации страниц и никаких деталей о событии …
Спасибо
Изменить HTTPClient.php
Заменить это:
$options = array(
'http'=>array(
'method'=>$httpMethod,
'header'=>"content-type: application/json\r\n",
'content'=>$data,
'ignore_errors'=>true
)
);
С этим:
$options = array(
'http'=>array(
'method'=>$httpMethod,
'header'=>"content-type: application/json\r\n",
'ignore_errors'=>true
)
);
if ($httpMethod == 'POST') {
$options['http']['content'] = $data;
}
Ссылка: https://github.com/eventbrite/eventbrite-sdk-php/issues/7#issuecomment-308537756
Других решений пока нет …