2017-09-06 4 views
0

Also ich habe bereits Birne/http_request2 auf meinem Laravel-Projekt installiert, aber es scheint nicht zu funktionieren. Was ich versuche ist der folgende Code für das Image Search API Bing:Laravel 5.4 und HTTP_Request2

$request = new \Http_Request2('https://api.cognitive.microsoft.com/bing/v5.0/images/search'); 
    $url = $request->getUrl(); 

    $headers = array(
     // Request headers 
     'Content-Type' => 'multipart/form-data', 
     'Ocp-Apim-Subscription-Key' => '{subscription key}', 
    ); 

    $request->setHeader($headers); 

    $parameters = array(
     'q' => 'query string', 
    ); 

    $url->setQueryVariables($parameters); 

    $request->setMethod(HTTP_Request2::METHOD_POST); 

    $request->setBody("{body}"); 

    try 
    { 
     $response = $request->send(); 
     $response->getBody(); 
    } catch (HttpException $ex) { 
     $ex; 
    } 

Jedes Mal, wenn ich es auf meinem Controller nennen, erhalte ich eine „Klasse‚Http_Request2‘nicht gefunden“ Fehler. Wie kann ich in irgendeiner Weise die Birne/http_request2 für mein Projekt verwenden?

UPDATE: Lösung

Ich habe herausgefunden, dass ich die Verwendung der base_path für einen nicht-Laravel Paket verwendet werden müssen.

Ich habe

require_once $path = base_path('vendor/pear/http_request2/HTTP/Request2.php'); 

und es funktioniert jetzt.

Antwort

0

Wenn ich einen Blick auf die Endbenutzerdokumentation nehmen für HTTP_Request2 finden Sie hier: http://pear.php.net/manual/en/package.http.http-request2.intro.php, kann ich ein Beispiel Anwendungsfall mit der Code beggining wie diese:

<?php 
require_once 'HTTP/Request2.php'; 

$request = new HTTP_Request2('http://pear.php.net/', HTTP_Request2::METHOD_GET); 

können Sie zunächst versuchen, einschließlich HTTP_Request2 Zeile "require_once 'HTTP/Request2.php';" und dann eine neue HTTP_Request2-Instanz erstellen.

Die Sache ist, dass Laravel Autoloading PSR-4 von Composer-Paket zur Verfügung gestellt, aber HTTP_Request2 funktioniert nicht auf diese Weise. Aber die Verwendung von require_once() in Ihrem Code sollte ohne Probleme in Laravel funktionieren. Stellen Sie sicher, dass Sie den richtigen Pfad zur Datei Request2.php verwenden.

+0

Okay, versuchen Sie das und kommen Sie ein wenig zurück. – rkg