如何在构造复杂的查询过程中将“管道”添加到get参数中

时间:2019-04-03 05:41:22

标签: php laravel guzzle

我正在使用一个具有“范围”参数的api,该参数可以应用于多个不同的参数项。我关注的范围是“价格”。我在laravel中使用guzzle,根据api文档,对于此特定参数的查询应这样写:“&range_facet = price | 500 | 2500 | 250” ...这分为最小值,最大值和价格范围参数的间隔值。这对于这个问题不一定重要。当我尝试按原样运行此查询时,我什么也没有返回。当我删除该特定参数时,我会得到值,但显然它们并未按照我希望的方式进行过滤。当我在Insomnia中运行此程序时,管道将替换为“%7C”,这显然(显然吗?)没有被api解释,因为这不是它如何等待GET请求。如何将管道插入查询中,以便调用正确的方法?

我试图创建一个附加的嵌套数组,将价格值分解为键值对,但这也不起作用。

'range_facets' => ['price'['start'=>'500', end=>'2500', 'interval'=>'250']],
$client = new Client();
      $result = $client->request('GET', "http://api.example.com", [
    'headers' => [
        'Host' => 'example-host',
        'Content-Type'     => 'application/json'
    ],
    'query' => [
      'api_key' => 'my_api_key',
      'range_facets' => 'price|500|2500|250',
      'year' => $year,
      'latitude' => '30.170222',
      'longitude' => '92.01320199',
      'radius' => 500,
      'start' => 0,
      'rows' => 50
    ]
]);

我想过滤我的价格,但是我需要管道才能做到这一点。

1 个答案:

答案 0 :(得分:0)

这就是应该的样子。 %7C应该在服务器端自动解码为|about query string encoding)。

我敢打赌,问题出在不同的地方。