Я выполняю простой запрос Java HttpGet с ключом API, предоставленным в поле заголовка, называемом «авторизация».
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet get = new HttpGet("https://someURL.com");
get.setHeader("authorization", "myAPIKEyhere...");
CloseableHttpResponse = response = httpClient.execute(get);
Это прекрасно работает, если я запускаю код локально (и в Postman также), но если я разверну его на своем сервере (Google Cloud), я получу ошибку авторизации.Поскольку ключ API содержит какой-то специальный символ, такой как «.»или ":" Мне было интересно, нужно ли мне что-то экранировать или кодировать, и поиграл с URLEncode
и экранированием, но ничего не помогло.
Это пример API-ключа:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlfdG9rZW5faWQzOiJjOGJhNDc0My0wNDgyLTQ2NWEtYmE2NS0wOGYzNTk1YTljNmIiLCJzY29wZSI6WyJzY29wZV9leGNoYW5nZV9sZWRnZXJfcmVhZCIsInNjb3BlX2V4Y2hhbmdlX2Z1bmRpbmdfcmVhZCIsInNjb3BlX2V4Y2hhbmdlX2Z1bnRpbmdfd3JpdGUiXSwidXNlcl9pZCI6Ijc5N2ZhY2EyLWQ2YzgtNGQ2Ny1hNzUzLTkyYzI2MjFkM2U1MyJ9.0h6w3nX4w3HO6r2DJl0W75fQ4VM8rItRgBkwQtqee88.V2: b4b82e785b0aaf1dcbd3c89e16b92532db3abc0b5c4115436b1fae31246aba430
Может длина это вопрос?Любые предложения, что может решить проблему?