如何在 laravel http 客户端 api 调用中分离基本 URL 和端点?
Posted
技术标签:
【中文标题】如何在 laravel http 客户端 api 调用中分离基本 URL 和端点?【英文标题】:How to seperate base URL and endpoint in laravel http client api call? 【发布时间】:2021-09-04 05:06:04 【问题描述】:就像在 guzzle 中一样,我想将基本 URL 和端点分开
use Guzzle\Http\Client;
use Guzzle\Stream\phpStreamRequestFactory;
$client = new Client('https://stream.twitter.com/');//base url
$request = $client->post('statuses/2',123);//end point
【问题讨论】:
【参考方案1】:是的,这是可能的。它有一个方法叫baseUrl()
$http=Http::baseUrl("https://stream.twitter.com/")
->post('statuses/2',["status"=>"success"]);
假设如果您正在寻找新的客户端,那么配置如下所示
$client = new Client([
'base_uri' => 'http://www.fake.com/1.0/',
'timeout' => 0,
'proxy' => '192.168.16.1:10'
]);
【讨论】:
【参考方案2】:也许你想要这样的东西?
$client = Http::baseUrl("https://stream.twitter.com/");
$response2 = $client->post('statuses/2',["status"=>"success"]);
$response3 = $client->post('statuses/3',["status"=>"success"]);
【讨论】:
【参考方案3】:Guzzle 使用guzzle/psr7 来执行此操作。你也可以(我认为任何 PSR7 实现都不仅仅是 Guzzle 的,因为 PSR7 是一个标准):
use GuzzleHttp\Psr7\Uri;
$uri = new Uri('https://stream.twitter.com/');
$uriWithPath = $uri->withPath('statuses/2');
请记住,Uri
是一个不可变类,因此所有变异操作都会创建一个新的 Uri 实例,其中包含您需要的附加属性。
【讨论】:
以上是关于如何在 laravel http 客户端 api 调用中分离基本 URL 和端点?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Passport API 调用代码参数 null