【问题标题】:How to make a post request to box.com API with laravel?如何使用 laravel 向 box.com API 发出发布请求?
【发布时间】:2016-02-16 06:48:48
【问题描述】:

我正在尝试从我的控制器向 Box.com API 发出发布请求。该请求会将文件上传到我的 Box.com 帐户。以下代码在我看来:

<form action="/accept" method="post" enctype="multipart/form-data">
    {{ csrf_field() }}

    <input type="file" name="filename">
    <input type="text" name="parent_id" value="0">

    <button type="submit">Submit</button>
</form>

在我的控制器中,我不知道如何将发布请求发送到 box.com API,该 API 将发送带有授权标头的表单数据。 Box.com API 需要授权标头才能接受请求。

但是,在 Laravel 文档中,他们有一个部分,我在其中找到了以下代码:

return response($content)
        ->header('Content-Type', application/json)
        ->header('Authorization', 'Bearer XXXXXXXXXXXXXXXX');

我可以使用它来设置授权标头,那么表单数据将如何发送?

这是接受发布请求的 Box.com API URL:

https://upload.box.com/api/2.0/files/content

【问题讨论】:

    标签: php api rest laravel


    【解决方案1】:

    要与 web 服务(如 box.com)集成,您应该需要一个 PHP HTTP Client(如 guzzle)来发送 HTTP Requests

    Official SDKCommunity-Built SDK 用于php 是一个很好的解决方案。

    【讨论】:

      【解决方案2】:

      我绝对同意 pespantelis,使用 PHP HTTP Client 之类的 Guzzle 是完成您想做的事情的好方法。

      一旦你都设置好了,你只需格式化你的请求,例如你可以做你想做的事情:

      Route::get( '/', function ()
      {
          $client = new GuzzleHttp\Client( ["base_uri" => "https://upload.box.com/api/2.0/"] );
      
          $response = $client->request( "GET", "files/content", ["headers" => ["Authorization" => "Bearer XXXXXXXXXXXXXXXX", "Content-Type" => "application/json"]] );
      
          return Response::json($response);
      } );
      

      虽然我会考虑使用 pespantelis 建议的 Official SDKCommunity-Built SDK,因为这可能更容易掌握,因为它们已经为你准备好了。

      【讨论】:

        猜你喜欢
        • 2017-12-25
        • 2015-09-10
        • 2020-08-18
        • 1970-01-01
        • 2018-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多