[Guzzle] Use error, geen response

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Carharttguy
  • Registratie: Juli 2010
  • Laatst online: 04-07 23:09
Hallo

Ik probeer naar aanleiding van een tip in een andere thread Guzzle te gebruiken om een website die geen API heeft, toch als API te gebruiken. Ik moet gewoon wat POST variables doorsturen en de response parsen.

Ik heb nu onderstaande code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require_once("guzzle/guzzle.phar");
                use GuzzleHttp\Client;
                
                $client = new GuzzleHttp\Client(['base_uri' => 'https://xxxxx.com/', 'cookies' => true]););
                $response = $client->post('/new_order_2.jsp',
                            [
                                'form_params' =>
                                [
                                    'heelveelvariablen' => 'heelveelvariablen'
                                ]
                                
                                'headers' =>
                                    [
                                    'Host'              => 'xxxx',
                                    'User-Agent'        => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0) Gecko/20100101 Firefox/39.0',
                                    'Accept'            => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                                    'Accept-Language'   => 'nl,en-US;q=0.7,en;q=0.3',
                                    'Accept-Encoding'   => 'gzip, deflate',
                                    'Referer'           => 'https://xxxxx.com/new_order_1.jsp'
                                    ] 
                            ]);
                echo $response->getBody();


Om deze POST request na te bootsen: http://imgur.com/85vPxkz

Echter geeft Komodo Edit een parse error op de lijn: use GuzzleHttp\Client;
Terwijl deze recht uit de documentatie komt.

Als ik het script uitvoer krijg ik geen response, en m'n error log blijft ook leeg.
Iemand ideeën?

Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Volgensmij is het toch echt $client = new GuzzleHttp\Client();

Tevens dienen use* helemaal bovenaan je script te staan.
Dat betekend dat je dan gewoon dit kunt doen: Client();
Weet dus niet zo goed waarom je die use gebruikt?

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 19:38
Begin eens met errors aanzetten voor de zekerheid, helemaal bovenin.
PHP:
1
2
error_reporting(E_ALL);
ini_set("display_errors", 1);


Welke PHP versie gebruik je? Guzzle heeft minimaal PHP 5.5 nodig. Misschien moet je in Komodo Edit ook instellen dat je PHP 5.5/5.6 gebruikt, anders kent hij niet alle language features (use statements / namespaces is vanaf PHP 5.3)

Acties:
  • 0 Henk 'm!

  • Carharttguy
  • Registratie: Juli 2010
  • Laatst online: 04-07 23:09
HollowGamer schreef op woensdag 22 juli 2015 @ 23:26:
Volgensmij is het toch echt $client = new GuzzleHttp\Client();

Tevens dienen use* helemaal bovenaan je script te staan.
Dat betekend dat je dan gewoon dit kunt doen: Client();
Weet dus niet zo goed waarom je die use gebruikt?
Ik weet het ook niet echt goed moet ik eerlijk zijn, stond zo in de docs. Ben erg novice in PHP.
Dus in principe heb ik de use niet nodig?
Barryvdh schreef op donderdag 23 juli 2015 @ 09:07:
Begin eens met errors aanzetten voor de zekerheid, helemaal bovenin.
PHP:
1
2
error_reporting(E_ALL);
ini_set("display_errors", 1);


Welke PHP versie gebruik je? Guzzle heeft minimaal PHP 5.5 nodig. Misschien moet je in Komodo Edit ook instellen dat je PHP 5.5/5.6 gebruikt, anders kent hij niet alle language features (use statements / namespaces is vanaf PHP 5.3)
Errors staan aan in PHP ini, die regels veranderen niets, zou het misschien kunnen doordat ik ob_start en ob_flush gebruik dat ik niets van errors te zien krijg?

Acties:
  • 0 Henk 'm!

  • Carharttguy
  • Registratie: Juli 2010
  • Laatst online: 04-07 23:09
Kleine rechtzetting: Had de error reporting fout geplaatst. Moest natuurlijk vanboven aan mijn index.php, niet aan de geïnclude pagina. Na wat andere kleine foutjes heb ik nu dit script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require_once("guzzle/guzzle.phar");
                
                $client = new GuzzleHttp\Client(['base_uri' => 'https://xxxx.com/', 'cookies' => true]);
                $response = $client->post('/new_order_2.jsp',
                            [
                                'form_params' =>
                                [
                                    'veelpostparams'                             => 'veelpostparams'
                                ],
                                
                                'headers' =>
                                    [
                                    'Host'              => 'xxxxxx.com',
                                    'User-Agent'        => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0) Gecko/20100101 Firefox/39.0',
                                    'Accept'            => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                                    'Accept-Language'   => 'nl,en-US;q=0.7,en;q=0.3',
                                    'Accept-Encoding'   => 'gzip, deflate',
                                    'Referer'           => 'https://xxxxxx.com/new_order_1.jsp'
                                    ] 
                            ]);
                echo $response->getBody();


en deze foutmelding:
Fatal error: Uncaught exception 'GuzzleHttp\Exception\ServerException' with message 'Server error: 500' in phar:///home/janpeka17/domains/xxxx.eu/public_html/guzzle/guzzle.phar/GuzzleHttp/Middleware.php:68 Stack trace: #0 phar:///home/janpeka17/domains/xxxxx.eu/public_html/guzzle/guzzle.phar/GuzzleHttp/Promise/Promise.php(199): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #1 phar:///home/janpeka17/domains/xxxxx.eu/public_html/guzzle/guzzle.phar/GuzzleHttp/Promise/Promise.php(152): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array) #2 phar:///home/janpeka17/domains/xxxx.eu/public_html/guzzle/guzzle.phar/GuzzleHttp/Promise/TaskQueue.php(60): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #3 phar:///home/janpeka17/domains/xxxx.eu/public_html/guzzle/guzzle.phar/GuzzleHttp/Handler/CurlMultiHandler.php(96): GuzzleHttp\Promise\TaskQueue->run() #4 phar:///home/janpeka17/domains/xxx.eu/public_html/guzzle/guzzle.phar/Guz in phar:///home/janpeka17/domains/xxx.eu/public_html/guzzle/guzzle.phar/GuzzleHttp/Middleware.php on line 68
Ik heb deze phar gedownload en gewoon geupload via ftp: https://github.com/guzzle/guzzle/releases (de bovenste, laatste release)

Een server error 500 is een internal server error, terwijl de pagina wel nog gewoon werkt als ik er handmatig naartoe surf. Iemand ideeën wat ik mis?

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 19:38
Je kan instellen dat http errors niet omgezet worden in exceptions, of de exception catchen. Dan de body als string bekijken om te zien wat de server zegt. Waarschijnlijk klopt je post request dus niet.

Zie ook je andere topic, met goutte kan je misschien wat makkelijker een correcte request maken.

Acties:
  • 0 Henk 'm!

  • 0xDEADBEEF
  • Registratie: December 2003
  • Niet online
Guzzle... staat er wat in apache's error.log? Heb je php5-curl geïnstalleerd?

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion." - Steven Weinberg


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
0xDEADBEEF schreef op donderdag 23 juli 2015 @ 13:37:
Guzzle... staat er wat in apache's error.log? Heb je php5-curl geïnstalleerd?
php5-curl is volgens de documentatie niet nodig, maar volgensmij wel aan te raden.

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 19:38
0xDEADBEEF schreef op donderdag 23 juli 2015 @ 13:37:
Guzzle... staat er wat in apache's error.log? Heb je php5-curl geïnstalleerd?
Guzzle werkt gewoon, het is de andere server die een 500 error geeft.
Pagina: 1