Почему запрос к Google Maps Static API не работает через https + http2?
У меня есть веб-страница, обслуживаемая по https, которая должна отображать картинку, созданную через Google Maps Static API. Я пытаюсь создать изображение карты, сделав запрос к API через http:
<img src="http://maps.googleapis.com/maps/api/staticmap?client=CLIENT_ID&signature=MY_SIGNATURE"/>
Но в Chrome > "Inspect" > вкладка "Network" я вижу запрос к "https://maps.googleapis.com/maps/api/staticmap?client=CLIENT_ID&signature=MY_SIGNATURE" (через http2, я полагаю)
Кроме того, когда я пытаюсь выполнить запрос "https://maps.googleapis.com/maps/api/staticmap?client=CLIENT_ID&signature=MY_SIGNATURE" через адресную строку браузера, я получаю ошибку 400 с сообщением об ошибке "Your client has issued a malformed or illegal request".
Когда я пытаюсь отправить http и https запросы через Postman, я получаю следующие результаты:
- http + http1.1 -> ответ 200 ✅
- http + http2 -> ответ 200 ✅
- https + http1.1 -> ответ 200 ✅
- https + http2 -> ответ 400 ❌ (Сообщение об ошибке: «Your client has issued a malformed or illegal request»)
Может ли кто-нибудь сказать, что происходит?
Ответы (1 шт):
Всё, сам разобрался:
Cause
The URL of the image contains params that are passed unencoded in UTF-8. And because of one of these unencoded params, namely the "path" parameter, Google identified the URL as malformed or invalid and returned a 400 error.
Fix
Encode "path" param in UTF-8.