2017-12-25 24 views
1

을 사용하지 않도록 설정하고 서버는 응답으로 application/json에서 일부 데이터를 반환GuzzleHttp 내가 내 GET 요청의 일부 JSON을 보내야에는 urlencoding

$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 

나는,545,262,232 약 this 대답을 참조 10 그러나 아무것도하지 않습니다.

는 어떻게 인코딩, {}를 URL로하지 GuzzleHttp을 알 수 있습니까?

+0

잘못된 형식의 URL로 GET 요청을 기대할뿐만 아니라 동일한 형식의 URL로도 작동하지 않을 제 3 자 API 서버를 즐겼습니다. 나는 이것이 같은 상황이라고 생각한다. –

답변

1

IMO 그렇게하고 싶지는 않습니다. 원격 서버는 쿼리 문자열을 디코 드해야하므로 마지막에 원래 문자열이 수신됩니다. 쿼리 문자열 매개 변수를 관리하려면 query 옵션을 사용하는 것이 좋습니다.

어쨌든하고 싶다면 Uri class의 인스턴스를 수동으로 구성하십시오.