我正在尝试从我的控制器向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>
在我的控制器中,我没有得到任何关于如何将post请求发送到box.com API的线索,该API将使用授权标头发送表单数据。 Box.com API要求授权标头接受请求。
但是,在Laravel文档中,他们找到了以下代码:
return response($content)
->header('Content-Type', application/json)
->header('Authorization', 'Bearer XXXXXXXXXXXXXXXX');
我可以使用此设置授权标题,然后如何发送表单数据?
以下是接受邮寄请求的Box.com API网址:
https://upload.box.com/api/2.0/files/content
答案 0 :(得分:1)
要与网络服务(例如box.com)集成,您需要PHP HTTP Client
(例如guzzle)才能发送HTTP Requests
。
对于使用Official SDK或Community-Built SDK来说,这是一个很好的解决方案。
答案 1 :(得分:1)
我绝对同意pespantelis,使用类似Guzzle的PHP HTTP Client
是一个很好的方式来实现你想做的事情。
一旦您完成所有设置,只需格式化您的请求,例如您可以按照以下方式执行操作:
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);
} );
虽然我会考虑使用Official SDK或Community-Built SDK作为pespantelis建议,因为它可能更容易掌握,因为它们全部为你准备好。