如何在 laravel http 客户端 api 调用中分离基础 URL 和端点?

How to seperate base URL and endpoint in laravel http client api call?

就像在 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


是的,这是可能的。它有一个名为 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'
    ]);

Guzzle 使用 guzzle/psr7 来执行此操作。你也可以(我认为任何 PSR7 实现都不会只是 Guzzle 的,因为 PSR7 是一个标准):

use GuzzleHttp\Psr7\Uri;

$uri = new Uri('https://stream.twitter.com/');
$uriWithPath = $uri->withPath('statuses/2');

请记住,Uri 是一个不可变的 class,因此所有变异操作都会创建一个新的 Uri 实例,其中包含您需要的额外 属性。

也许你想要这样的东西?

$client = Http::baseUrl("https://stream.twitter.com/");
$response2 = $client->post('statuses/2',["status"=>"success"]);
$response3 = $client->post('statuses/3',["status"=>"success"]);