需要在我的应用中两次请求一些代码。拳头请求url作为ajax调用,还需要在控制器中请求此url(类似于hmvc)。我知道如何通过curl开发这个,但是我发现了另一种想法如何实现它,只需在准备好的params之前使用函数 file_get_contents 。这是我的代码:
// Setup limit per page
$args['offset'] = $offset;
$args['limit'] = $this->_perpage;
// --
// Convert search arguments to the uri format
$data = http_build_query($args);
// Define request params
$options = array(
'http' => array(
'header' => 'Content-type: application/json' . PHP_EOL .
'Content-Length: ' . strlen($data) . PHP_EOL,
'method' => 'POST',
'content' => $data,
),
);
$context = stream_context_create($options);
$result = file_get_contents(
'http://'.$_SERVER['HTTP_HOST'].'/search/items', FALSE, $context
);
在请求的uri中检测到请求方法正常,但没有通过params。为什么这不是传递请求的参数?我的代码中的bug在哪里?非常感谢您的回答。
答案 0 :(得分:4)
http_build_query构建application / x-www-form-urlencoded内容。 (不是申请/ json)
有一个完整的例子:
答案 1 :(得分:1)
内容类型应为application/x-www-form-urlencoded
。如果您想与application/json
保持联系,请尝试使用file_get_contents("php://input")
获取发布的数据。