8

我一直使用 cURL 来处理这类事情,但这篇文章让我想到我可以使用 Kohana 3 中的 Request 对象轻松请求另一个页面。

    $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

由此我可以假设这意味着方法方法是静态的,但这对我没有多大帮助。我还复制并粘贴了该文章中的示例,它引发了同样的错误。

基本上,我正在尝试发布到外部服务器上的新页面,并以 Kohana 方式进行。

那么,我这样做是否正确,还是应该只使用 cURL(或file_get_contents()上下文)?

4

3 回答 3

10

我不知道这是否最初是在 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();

我移动了一些东西以利用链接语法的简洁性。通过响应,您也可以检查响应代码。有关更多信息,请阅读RequestRequest_Client_External的 3.1 API 文档(处理这些外部请求,即不在应用内请求。

于 2011-05-25T01:58:24.407 回答
4

只需在底部阅读此内容

本示例中使用的请求类目前作为我个人 github 帐户中 Kohana Core 开发分支的一部分可用,可以从 http://github.com/samsoir/core获得。如果使用官方的 Kohana PHP 3.0 下载,则需要自定义扩展请求类。

另请参阅此讨论

于 2010-04-15T04:01:17.160 回答
-2

Request 对象用于请求应用程序中的页面。您不能将其用于外部 URL。哦,你不必使用 curl,你可以这样做更容易:

$page = file_get_contents('http://google.com');
于 2010-04-19T17:14:09.337 回答