我可以在执行 get 请求时将对象作为参数之一传递吗?
Can I pass an object as one of the parameters when I do the get request?
我有一个这样的参数值:
user = {id: 1, name="tester", age="23"}
我可以将整个对象作为 HTTP.GET 请求中的参数之一传递吗?如果是,我如何在我的邮递员中测试它?
您可以使用不同的方式 - 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 现在几乎所有使用的语言都可用。
我有一个这样的参数值:
user = {id: 1, name="tester", age="23"}
我可以将整个对象作为 HTTP.GET 请求中的参数之一传递吗?如果是,我如何在我的邮递员中测试它?
您可以使用不同的方式 - 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 现在几乎所有使用的语言都可用。