2017-12-28 26 views
0

,목구멍 : 잘못된 쿼리 문자열 형식이 코드

$client = new \GuzzleHttp\Client(['base_uri'=> 'http://example.com']); 
try{ 
    $data = ['params1'=>'value1', 'params2'=> 'value2']; 
    $res = $client->request('GET', '/', ['query'=> $data]); 
}catch(\GuzzleHttp\Exception\RequestException $e) 
{ 
     echo $e->getRequest()->getUri(); 
} 

이 출력됩니다 :

http://example.com/?params1=value1params2=value2 

당신은 요청 URI의 문자열 쿼리에서 앰퍼샌드의 부재를 볼 수 있습니다!

어떻게 해결합니까?

+0

당신은 6을 사용하고 있습니까? – Federkun

+0

예! Guzzle v6.0-dev – Goms

+0

당신의 guzzle의 버전을 stable 버전으로 업그레이드하십시오. 귀하의 코드는 좋은, 그리고 그것은 – Federkun

답변

0

이것은

$client = new \GuzzleHttp\Client(['base_uri'=> 'http://example.com']); 
try{ 
    $data = ['params1'=>'value1', 'params2'=> 'value2']; 
    $res = $client->request('GET', '/', ['query'=> http_build_query($data)]); 
}catch(\GuzzleHttp\Exception\RequestException $e) 
{ 
    echo $e->getRequest()->getUri(); 
} 
+0

많이 작동합니다! 그것은 작동합니다! 'http_build_query' 네이티브 함수 사용하기 – Goms

0

이것은 6.0.1 version에서 수정 된 버그이었다해야한다. 안정적인 버전의 그놈을 사용하면 코드가 작동합니다.