Могу ли я передать объект в качестве одного из параметров при выполнении запроса get? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть значения параметров, подобные этому:

user = {id: 1, name="tester", age="23"}

Могу ли я передать весь объект как один из параметров в запросе HTTP.GET?Если да, как я могу проверить это в моем почтальоне?

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете использовать разные способы - PHP serialize функция:

$user = array(
    "id" => 1,
    "name" => "tester",
    "age" => 23
);

echo serialize($user);
echo '</br>';
echo var_dump(unserialize($_GET['user']));

, что приводит к URL-адресу звонка:

?user=a:3:{s:2:%22id%22;i:1;s:4:%22name%22;s:6:%22tester%22;s:3:%22age%22;i:23;}

Или вы можете простоjson_encode объект:

$user = array(
    "id" => 1,
    "name" => "tester",
    "age" => 23
);

echo json_encode($user);
echo '</br>';
var_dump(json_decode($_GET['user']));

В результате URL-адрес вызова:

?user={"id":1,"name":"tester","age":23}

Это будет работать до тех пор, пока параметры в URL безопасны,Если вы не уверены, что это так, вы можете urlencode параметр:

$user = array(
    "id" => 1,
    "name" => "tester",
    "age" => 23
);

echo urlencode(json_encode($user));
echo '</br>';
var_dump(json_decode(urldecode($_GET['user'])));

, что приведет к закодированному URL:

?user=%7B%22id%22%3A1%2C%22name%22%3A%22tester%22%2C%22age%22%3A23%7D

PHP был использован здесь только в качестве примера, но json и urlencoding доступны почти на всех языках, используемых в настоящее время.

...