当前位置: 首页 > 知识库问答 >
问题:

从Laravel向外部API发出HTTP请求

郗浩言
2023-03-14

我想要的是从一个API获取一个对象,并将HTTP(例如,jQuery的AJAX)请求发送到一个外部API。我该怎么开始?我对谷歌先生做了研究,但没有发现任何有用的东西。

我开始怀疑这是可能的吗?在这篇文章Laravel 4使后请求从控制器到外部url与数据它看起来像是可以做到的。但是没有例子也没有任何来源可以找到一些留档。

请帮帮我?

共有3个答案

贝研
2023-03-14

你只想调用一个外部URL并使用结果?如果我们讨论的是对提供JSON服务的对象的简单GET请求,PHP会开箱即用:

$json = json_decode(file_get_contents('http://host.com/api/stuff/1'), true);

如果你想做一个post请求,这会有点困难,但是有很多例子可以说明如何使用curl来实现这一点。

所以我想问题是;你到底想要什么?

贺浩漫
2023-03-14

我们可以在Laravel中使用Guzzel包,它是一个PHP HTTP客户端来发送HTTP请求。

你可以通过composer安装Guzzle

composer require guzzlehttp/guzzle:~6.0

或者可以在项目的现有composer中将Guzzle指定为依赖项。json

{
   "require": {
      "guzzlehttp/guzzle": "~6.0"
   }
}

laravel 5中使用Guzzle的示例代码如下所示,

use GuzzleHttp\Client;
class yourController extends Controller {

    public function saveApiData()
    {
        $client = new Client();
        $res = $client->request('POST', 'https://url_to_the_api', [
            'form_params' => [
                'client_id' => 'test_id',
                'secret' => 'test_secret',
            ]
        ]);
        echo $res->getStatusCode();
        // 200
        echo $res->getHeader('content-type');
        // 'application/json; charset=utf8'
        echo $res->getBody();
        // {"type":"User"...'
}
锺离赤岩
2023-03-14

根据这里一个类似问题的答案:https://stackoverflow.com/a/22695523/1412268

看看古斯

$client = new GuzzleHttp\Client();
$res = $client->get('https://api.github.com/user', ['auth' =>  ['user', 'pass']]);
echo $res->getStatusCode(); // 200
echo $res->getBody(); // { "type": "User", ....
 类似资料:
  • 问题内容: 我想要的是从具有HTTP(例如jQuery的AJAX)请求的API到外部api的对象。我该如何开始?我曾对Google先生进行过调查,但找不到任何帮助。 我开始怀疑这是否可能?在这篇文章中,Laravel4发出了从控制器到外部url的发布请求,并发出了看起来可以完成的数据。但是没有示例,也没有任何来源可以找到一些文档。 请帮帮我吗? 问题答案: 看看Guzzle

  • 我正在开发应用程序以从其他站点获取数据并显示在的html表中。 我使用Guzzes发送请求。(stackoverflow问题,最后使用Guzzes) 当我调用基于到外部API的请求时,它向我显示正确的数据! 我的问题是: 当我调用链接以获取laravel中的数据时,它会转到错误。 一些API地址只是在中工作, 我该怎么办?

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 我是Spring框架Java新手,我需要一种从我的应用程序调用外部Rest Api的方法。是否有任何“最佳实践”超文本传输协议客户端,以便我可以根据需要使用? 提前感谢

  • 我在Nuxt中创建了一个表单。我正试着把它提交给一个外部API。预期的响应是JWT令牌。 尝试直接调用API会导致CORS错误,因此我在nuxt.confix.js中使用代理设置。 现在,当我检查网络选项卡时,它显示了301重定向,但在post请求中发送的数据被丢弃,它向API发出get请求,返回405错误(因为它期待带有数据的POST请求而不是空GET请求)。 如何使用 NUXT 向外部 API

  • 问题内容: 问题很简单。我想使用Node.js服务器作为代理,以记录,认证HTTP查询并将其转发到后端HTTP服务器(PUT,GET和DELETE请求)。 我应该为此使用哪个库?恐怕找不到。 问题答案: NodeJS支持将http.request作为标准模块:http ://nodejs.org/docs/v0.4.11/api/http.html#http.request

  • 如何使用方法将数据检索到数据库中,我创建了一个从外部服务api检索数据的方法-可以显示该方法,但我在创建将检索到的数据发送到数据库的适当方法时遇到了问题。 方法从外部api检索数据: 我准备了一个存储库和一个实体来创建一个数据库(创建了数据库,但没有填充数据) 我目前创建了一个POST方法,但它不允许检索和保存数据(逻辑不好?)。 DTO型号: 允许您保存数据的服务。 因此,我有一个问题,就是如何