GuzzleHttp禁用UrlEncoding

问题描述 投票:1回答:1

我应该在我的Get请求中发送一些JSON,服务器在application/json中返回一些数据作为响应:

$url='http://example.com/var1=123&var2={'id':123,satrt:342,end:987,using:"abc"}';

我使用这段代码:

$client = new \GuzzleHttp\Client;
$response = $client->get($url);
$data = json_decode((string)$response->getBody(), true);

但它发送请求:

 http://example.com/var1=123&var2=%7B'id':123,satrt:342,end:987,using:"abc"%7D

我看到this回答关于$response->getQuery()->useUrlEncoding(false)但它什么都不做。

我怎么能告诉GuzzleHttp不要对{和}进行url编码?

php laravel-5 urlencode guzzle
1个回答
1
投票

IMO你不应该这样做。远程服务器必须解码查询字符串,因此它最终将接收原始字符串。顺便说一下,最好使用query选项来管理查询字符串参数。

无论如何你想要这样做,尝试手动构建一个Uri class实例。

© www.soinside.com 2019 - 2024. All rights reserved.