php - 使用 Guzzle 通过 Symfony 将 HTTP GET 发送到外部 API

标签 php http symfony guzzle

我是 Symfony 开发的新手,如果这是一个愚蠢的问题,请原谅。我正在尝试从外部 API 获取 JSON 数据。我尝试通过 Postman 运行 GET 请求并返回 JSON 格式的正确数据,因此我知道我的 URL 是正确的。

我编写了以下代码以使用 Guzzle 从我的外部 API HTTP 获取一组 JSON 数据:

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Client;

class ScheduleController {

/**
 * @Route("/schedule")
 */

public function getJobs() {
    // Create a client with a base URI
    $client = new GuzzleHttp\Client(['base_uri' => 'http://my.api.url/']);
    // Send a request to http://my.api.url/site/67/module/1449/item
    $response = $client->request('GET', 'site/67/module/1449/item');
    dump($response);
}
}

我正在尝试尽可能密切地关注 the Guzzle quick start guide.我从这段代码中收到 500 错误: 尝试从命名空间“AppBundle\Controller\GuzzleHttp”加载类“Client”。 您是否忘记了例如“使用”声明“Symfony\Component\BrowserKit\Client”、“Symfony\Component\HttpKernel\Client”还是“Symfony\Bundle\FrameworkBundle\Client”?

我有一个 use 声明 use GuzzleHttp\Client; 我做错了什么?有更简单的方法吗?

最佳答案

这一行: $client = new GuzzleHttp\Client(['base_uri' => 'http://my.api.url/']);

应该是:

$client = new Client(['base_uri' => 'http://my.api.url/']);

或:

$client = new\GuzzleHttp\Client(['base_uri' => 'http://my.api.url/']);

自从您导入命名空间后,任何一个都可以工作。您可能想要第一个选项。当您放置 GuzzleHttp\Client 时,PHP 认为它是一个相对命名空间,这就是它说“找不到 AppBundle\Controller\GuzzleHttp\Client”的原因。

关于php - 使用 Guzzle 通过 Symfony 将 HTTP GET 发送到外部 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41817525/

相关文章:

php - 在 Symfony 4 中安排 Controller 前端和后端的正确方法是什么

Node.js http 服务器 : what happens to the unread body of the POST request?

ios - 使用 swift 通过 http POST 安全地发送信用卡详细信息是否安全?

http - 负数组大小异常

php - Symfony 4 - 不渲染 Twig 模板

mysql - 访问 twig 中数组的单个元素

php - 对 Symfony 服务类进行单元测试

php - 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) Ubuntu

php - 无法使用 PHP 在数据库中添加值

PHP 导入函数