gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:34 24 4
gpt4 key购买 nike

我是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com