Есть код запроса:
<?php
$api_link = 'https://api.mydomain.ru/sendmsg?case=10894574&text=foo';
$api_request = \Drupal::httpClient()->get($api_link);
?>
Узел-адресат не видит второй параметр (text=foo). Начал разбираться, обнаружил, что запрос уходит в таком виде:
https://api.mydomain.ru/sendmsg?case=10894574&text=foo
В логах Друпала вот такая ошибка:
GuzzleHttp\Exception\ConnectException: Error creating resource: [message] fopen(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution [file] /var/www/webgate/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php [line] 324 [message] fopen(https://api.mydomain.ru/sendmsg?case=10894574&text=foo): failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution [file] /var/www/webgate/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php [line] 324 in GuzzleHttp\Handler\StreamHandler->__invoke() (line 66 of /var/www/webgate/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php).
И никаким образом не удается избавиться от 'amp;' в строке адреса.
Комментарии
А если так:
$api_request = \Drupal::httpClient()->get('https://api.mydomain.ru/sendmsg', ['query' => http_build_query($query)]);
Это работает! Спасибо!