如何将外部请求发送到需要身份验证的网站 - Kohana 3.3

时间:2014-12-15 21:23:54

标签: authentication login request external kohana

我正在使用Kohana 3.3并尝试向我们公司内部的网址发出外部请求。外部网站需要用户凭据。我如何向该网站提出外部请求?我打算使用单个请求登录,然后点击我想要的URL,但我如何实现它?示例代码如下。

     Request::factory('http://example.com/user/login')->method('POST')->post('username', 'abc')->post('password', '123')->execute();
    $request = Request::$current;

   $request->factory('http://example.com/do/this')->method('POST')->post('param1', 'value')->post('param2', 'value2');
  $response = $request->execute();

上述代码在$request->factory()处失败,说它不是对象,不能调用factory()方法。

有谁能告诉我在Kohana 3.3中尝试实现的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

要发送外部请求,您应该使用Request::factory()然后execute()创建一个请求。请注意$request->execute()返回Response个对象。

要对使用身份验证的网站提出2个请求:

// We create $request object
$request = Request::factory('http://example.com/user/login')
    ->method('POST')
    ->post(array(
        'username' => 'abc',
        'password' => '1111'
    ));

// We execute $request - getting 1st response
$response1 = $request->execute();

// We setting new URL to our $request object and new POST params
$request
    ->url('http://example.com/do/this')
    ->post(array(
        'param1' => '1',
        'param2' => '2'
    ));;

// Now we can execute it again
$response2 = $request->execute();

所以这个想法是 - 你可以为不同的实际请求使用1个请求对象。