2013-10-10 2 views
0

Необходимо запросить код в приложении два раза. Fist request url как ajax call, а также необходимо запросить этот url в контроллере (что-то вроде hmvc). Я знаю, как разработать это через curl, но я нашел другую идею, как реализовать это, просто используйте функцию file_get_contents с предварительно подготовленными параметрами. Этот мой код:Не удается отправить данные в почтовом запросе через 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 
    ); 

Метод запроса был обнаружен ok в запрошенном uri, но параметры не были переданы. Почему это не аргументы для запроса? Где ошибка в моем коде? Большое спасибо за любые ответы.

ответ

4

http_build_query создает приложение/x-www-form-urlencoded содержимое. (Не приложения/JSON)

Существует полный пример:

How to post data in PHP using file_get_contents?

+0

Спасибо! Хороший пример для чтения тоже. –

1

Тип контента должен быть application/x-www-form-urlencoded. Если вы хотите остановиться в application/json, попробуйте ввести опубликованные данные используя file_get_contents("php://input").

+0

Большое спасибо, это отлично работает для меня. –

Смежные вопросы