所以我已经在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');
它现在有效。
答案 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文件的正确路径。