Laravel 5.4和HTTP_Request2

时间:2017-09-06 07:10:27

标签: php laravel laravel-5 httprequest laravel-5.4

所以我已经在laravel项目中安装了pear / http_request2,但似乎无法使其工作。我正在尝试的是Bing Image Search API的以下代码:

    $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;
    }

每当我在控制器上调用它时,我都会收到“Class'Http_Request2'找不到”错误。无论如何,我如何将pear / http_request2用于我的项目?

更新:解决方案

我发现我使用了base_path来使用非Laravel包。

我添加了

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

它现在有效。

1 个答案:

答案 0 :(得分:0)

如果我在这里查看HTTP_Request2的最终用户文档:http://pear.php.net/manual/en/package.http.http-request2.intro.php,我可以看到一个示例用例,其代码如下所示:

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

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

您可以先使用“require_once'HTTP / Request2.php';”行尝试包含HTTP_Request2,然后再创建新的HTTP_Request2实例。

事情是Laravel使用Composer包提供的PSR-4自动加载,但HTTP_Request2不能以这种方式工作。但是,在代码中使用require_once()应该可以在Laravel中正常运行。只需确保使用Request2.php文件的正确路径。