Как выполнить внешний запрос в Kohana 3? - PullRequest
8 голосов
/ 15 апреля 2010

Я всегда использовал cURL для такого рода вещей, но эта статья заставила меня задуматься, что я могу легко запросить другую страницу, используя объект Request в Kohana 3.

    $url = 'http://www.example.com';

    $update = Request::factory($url);

    $update->method = 'POST';

    $update->post = array(
        'key' => 'value'
    );  

    $update->execute();
    echo $update->response;

Однако я получаю ошибку

Accessing static property Request::$method as non static

Из этого я могу предположить, что это означает, что метод метода является статическим, но это мне мало помогает. Я также скопировал и вставил пример из этой статьи, и он выдал ту же ошибку.

По сути, я пытаюсь POST к новой странице на внешнем сервере, и делаю это способом Kohana.

Итак, я делаю это правильно, или мне просто использовать cURL (или file_get_contents() с контекстом)?

Ответы [ 3 ]

10 голосов
/ 25 мая 2011

Я не знаю, было ли это изначально написано, когда OP использовал Kohana 3.0, но основной выпуск Kohana 3.1 значительно облегчил эту задачу. Remote :: get () устарел (и с самого начала был не очень хорош). Для этого в Kohana 3.1 достаточно просто, и у вас это было:

$url = 'http://www.example.com';

$request = Request::factory($url)
    ->method('POST')
    ->post('key', 'value');

$response = $request->execute();

echo $response->body();

Я переместил некоторые вещи, чтобы воспользоваться лаконичностью синтаксиса цепочки. С ответом вы также можете проверить код ответа. Для получения дополнительной информации прочитайте документацию по API 3.1 для Request и Request_Client_External (которая обрабатывает эти внешние, т.е. не внутри запросов приложения.

4 голосов
/ 15 апреля 2010

Просто прочитайте это внизу

Класс запроса, используемый в этом примере в настоящее время доступен как часть Kohana Core ветвь развития в пределах мой личный аккаунт на github, который может быть полученным из http://github.com/samsoir/core. Если используя официальную Kohana PHP 3.0 скачать, пользовательское расширение Требуется класс запроса.

Также см. это обсуждение .

0 голосов
/ 19 апреля 2010

Объект Request используется для запроса страниц в вашем приложении . Вы не можете использовать его для внешних URL. О, и вам не нужно использовать curl, вы можете сделать это проще, выполнив следующее:

$page = file_get_contents('http://google.com');
...