我总是把cURL用于这类东西,但this article让我觉得我可以使用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
从这里我可以假设它意味着方法方法是静态的,但这对我没有多大帮助。我也复制并粘贴了那篇文章的例子,它也犯了同样的错误。
基本上,我正在尝试POST到外部服务器上的新页面,并以Kohana的方式进行。
那么,我是否正确地这样做,或者我应该只使用cURL(或file_get_contents()
使用上下文)?
答案 0 :(得分: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();
我移动了一些东西,以利用链接语法的简洁性。通过响应,您还可以检查响应代码。有关详细信息,请参阅Request和Request_Client_External的3.1 API文档(处理这些外部即不是应用内请求。
答案 1 :(得分:4)
请在底部阅读
此示例中使用的请求类 目前可作为一部分提供 Kohana核心开发分支 我的个人github帐户,可以 从中获得 http://github.com/samsoir/core。如果 使用官方Kohana PHP 3.0 下载,自定义扩展 请求类是必需的。
答案 2 :(得分:-2)
Request对象用于请求应用程序中的页面 。您不能将其用于外部URL。哦,你不必使用卷曲,你可以通过这样做更容易:
$page = file_get_contents('http://google.com');