我正在使用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中尝试实现的正确方法是什么?
答案 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个请求对象。