【问题标题】:How to seperate base URL and endpoint in laravel http client api call?如何在 laravel http 客户端 api 调用中分离基本 URL 和端点?
【发布时间】: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


【问题讨论】:

    标签: php laravel api http guzzle


    【解决方案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 实例,其中包含您需要的附加属性。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-21
          • 1970-01-01
          • 2016-03-06
          • 2021-11-21
          相关资源
          最近更新 更多