2017-09-06 35 views
0

私はすでにlearvelプロジェクトにpear/http_request2をインストールしていますが、動作させるようには見えません。私は何をしようとしていると、Bingの画像検索APIの次のコードです:Laravel 5.4と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; 
    } 

私は私のコントローラ上でそれを呼び出すたびに、私は「クラス 『Http_Request2』が見つかりません」エラーが発生します。どんな方法で、自分のプロジェクトにpear/http_request2を使うことができますか?

UPDATE:ソリューション

私は、使用する非LaravelパッケージのBASE_PATHを使用していることが判明しました。

私は

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

を追加し、それが機能するようになりました。私はHTTP_Request2ここに利用できるため、エンドユーザーのドキュメントを参照取る場合

答えて

0

http://pear.php.net/manual/en/package.http.http-request2.intro.phpを、私は、コードは次のようbegginingして例のユースケースを見ることができます:

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

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

あなたはHTTP_Request2ラインの使用を含む最初に試すことができます"require_once 'HTTP/Request2.php';"、次に新しいHTTP_Request2インスタンスを作成します。

LaravelはComposerパッケージで提供されているPSR-4オートローディングを使用していますが、HTTP_Request2はそのように動作しません。しかし、あなたのコードでrequire_once()を使うことは問題なしでLaravelで動作するはずです。単にRequest2.phpファイルへの正しいパスを使用してください。

+0

これを試してみるとちょっと戻ってきます。 – rkg