Symfony2 + Guzzle + Goutte = URI必须是字符串或UriInterface

时间:2016-07-22 16:07:40

标签: php symfony guzzle goutte

我有一个大约一年的Symfony2项目,它刮掉了一个非常糟糕的编码网页。我正在开发一个新的Symfony2项目,并且必须使用相同的scrape方法,但我的新项目使用的是更新版本:

Symfony 3.1。* Guzzle 6.2-dev Goutte ^ 3.1

我也使用Goutte,你可能听说过。我得到的原始错误消息是关于数组中的变量,所以我将配置变量更改为数组,它[似乎]修复了错误:

(旧)

maxWidth

(新)

$client = new Client();
$client->getClient()->setDefaultOption('config/curl/'.CURLOPT_SSL_VERIFYHOST, FALSE);
$client->getClient()->setDefaultOption('config/curl/'.CURLOPT_SSL_VERIFYPEER, FALSE); 

这个错误被新的东西所取代,我无法解决这个问题:

$client = new Client();
$client->getClient()->setDefaultOption(array(
    'curl' => array(
            CURLOPT_SSL_VERIFYHOST => FALSE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
      ),
));

我在做:

URI must be a string or UriInterface

我尝试过这样做:(通过http://guzzle3.readthedocs.io/http-client/client.html

$login_url = "https://sub.website.com/event/login.jsp"; 
$crawl_login = $client->request('GET', $login_url);//$login_url
$form = $crawl_login->selectButton('loginSubmit')->form();
$form['login']    = $user;
$form['password'] = $pass;
$crawl_login = $client->submit($form);

但无济于事,我仍然得到同样的错误。所以我认为我的选择是要么让这个工作或者如果可能的话或者改成更老版本的guzzle(我不知道该怎么做,是的,我知道HTTP_PROXY漏洞)。

我实际上并不希望任何人有解决方案,因为几乎没有人似乎使用Guzzle / Goutte,但是值得发帖和手指交叉我解决了。谢谢。

0 个答案:

没有答案