Я был в состоянии выполнить синтаксический разбор, чтобы отправить данные на мой апи, используя этот формат:пасса HTML-формы данных в JSON PHP строку
Работы образца:
<?php
$appId = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX';
$private_token = 'XXXXXXXXXXXXXXXXXXX';
$geo_post = "/api/v1/geofence/";
$name = "Home";
$latitude = 38.646322;
$longitude = -121.185837;
$radius = 50;
$data = array(
"name" => $name,
"location" =>
array("latitude" => $latitude, "longitude" => $longitude),
"matchRange" => $radius
);
$data_string = json_encode($data);
$ch = curl_init();
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode($appId.":".$private_token) // <---
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, 'https://admin.plotprojects.com' . $geo_post);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = trim(curl_exec($ch));
curl_close($ch);
//print_r($content);
?>
образца с сообщением об ошибке:
<?php
if (isset($_REQUEST['add_new'])){
$appId = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$private_token = 'XXXXXXXXXXXXXXXXXXXXXXX';
$geo_post = "/api/v1/geofence/";
$name = $_GET['db_geofencename'];
$latitude = $_GET['db_latitude'];
$longitude = $_GET['db_longitude'];
$radius = $_GET['db_radius'];
$data = array(
"name" => $name,
"location" =>
array("latitude" => $latitude, "longitude" => $longitude),
"matchRange" => $radius
);
$data_string = json_encode($data);
$ch = curl_init();
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode($appId.":".$private_token) // <---
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, 'https://admin.plotprojects.com' . $geo_post);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = trim(curl_exec($ch));
curl_close($ch);
print_r($content);
?>
Как вы можете видеть, я использую строку в моем массиве $ данных, так что я пытаюсь захватить информацию из формы и передать его в массив данных $, но если я использую $ _GET или $ _POST i заканчивается сообщением об ошибке:
{ "успех" ложь "ErrorMessage": "Содержание запроса было уродливы: \ nExpected Строка в JsString, но получил нулевой", "ERRORCODE": "BadRequest"}
что это я» Неправильно?
отправить сообщение print_r ($ data_string = json_encode ($ data)); – Pulkit
не понимаю, что вы имеете в виду? если говорить о том, что происходит, вы можете увидеть рабочий здесь: http://www.mygeofy.com/api/add_geo.php – TrevTech
привет, просто чтобы узнать, какие значения переданы и какое значение строки json_encode передается в $ data_string. Итак, измените строку: $ data_string = json_encode ($ data); by print_r ($ data_string = json_encode ($ data)); die; и вставьте здесь комментарий здесь. – Pulkit