У меня проблемы с Guzzle и REST API в моей openHAB-системе.
У меня есть fre sh Laravel 7 установка, где я использую Guzzle для извлечения вещей из openHAB API. Это отлично работает для GET-запроса к конечной точке /things
. Однако, когда я пытаюсь отправить запрос на конкретную c конечную точку вещей /things/UUID
, я получаю следующую ошибку:
GuzzleHttp\Exception\RequestException
cURL error 61: Unrecognized content encoding type. libcurl understands deflate, gzip content encodings. (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
Я не уверен, что именно это означает. Прилагается дамп ответа на запрос Guzzle в режиме отладки:
Создание экземпляра клиента Guzzle в PHP -коде:
$this->guzzle_client = new \GuzzleHttp\Client([
'base_uri' => $protocol.$this->server_hostname.':'.$this->server_port.'/rest/',
'verify' => false,
'auth' => [$this->server_username, $this->server_password],
'debug' => true,
]);
Debug- вывод от клиента Guzzle:
* Trying 10.0.0.63...
* TCP_NODELAY set
* Connected to 10.0.0.63 (10.0.0.63) port 8080 (#0)
> GET /rest/things HTTP/1.1
Host: 10.0.0.63:8080
User-Agent: GuzzleHttp/6.5.5 curl/7.64.1 PHP/7.3.11
Authorization: Basic Og==
Пока все хорошо ... Теперь возникает проблема:
Запрос Guzzle, который вызывает ошибку :
$response = $this->api()->request('GET', 'things/'.$uid);
Отладочный вывод из запроса Guzzle:
* Found bundle for host 10.0.0.63: 0x7fafc9d7acb0 [can pipeline]
* Re-using existing connection! (#0) with host 10.0.0.63
* Connected to 10.0.0.63 (10.0.0.63) port 8080 (#0)
> GET /rest/things/zwave%3Adevice%3A23daaff0%3Anode7 HTTP/1.1
Host: 10.0.0.63:8080
User-Agent: GuzzleHttp/6.5.5 curl/7.64.1 PHP/7.3.11
Authorization: Basic Og==
< HTTP/1.1 200 OK
< Content-Type: application/json
< Content-Encoding: UTF-8
< Content-Length: 7386
< Server: Jetty(9.4.20.v20190813)
<
* Unrecognized content encoding type. libcurl understands deflate, gzip content encodings.
* Closing connection 0
Я не уверен, что здесь делать? Для Guzzle казалось бы тривиальной задачей получить что-то из openHAB API, поэтому я не понимаю, почему может возникнуть проблема с кодированием между этими двумя системами.
Есть идеи, как решить эту проблему?