【问题标题】:How to send external request to a website which needs authentication - Kohana 3.3如何向需要身份验证的网站发送外部请求 - Kohana 3.3
【发布时间】:2014-12-15 21:23:54
【问题描述】:

我正在使用 Kohana 3.3 并尝试向我们公司内部的 url 发出外部请求。外部网站需要用户凭据。我如何向该网站发出外部请求?我打算使用单个请求登录,然后点击我想要的 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 中尝试实现的正确方法是什么?

【问题讨论】:

    标签: authentication login request external kohana


    【解决方案1】:

    要发送外部请求,您应该使用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 个请求对象来处理不同的实际请求。

    【讨论】:

      猜你喜欢
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 2020-11-21
      • 2017-05-17
      相关资源
      最近更新 更多