GuzzleHttp禁用UrlEncoding

时间:2017-12-25 15:07:56

标签: php laravel-5 urlencode guzzle

我应该在我的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

我看到关于$response->getQuery()->useUrlEncoding(false)的{​​{3}}回答,但它没有做任何事情。

如何告诉GuzzleHttp不要对 {} 进行网址编码?

1 个答案:

答案 0 :(得分:1)

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

如果您仍想这样做,请尝试手动构建Uri class的实例。