首页 > 解决方案 > Spring Boot 和 FCM 特殊字符

问题描述

我在向 FCM 发送包含特殊字符(例如“łżźć”)的消息时遇到问题。当我通过开发者控制台发送它们时 - 移动应用程序会正确显示它们。但是当我从我们的服务器发送它们时,它们被替换为“??????”。

我有以下如何将消息本身发送到 FCM 服务器:

@Async
CompletableFuture<String> send(HttpEntity<String> entity, String accessToken) throws HttpClientErrorException {
    RestTemplate restTemplate = new RestTemplate();

    ArrayList<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
    interceptors.add(new HeaderRequestInterceptor("Authorization", "Bearer " + accessToken));
    interceptors.add(new HeaderRequestInterceptor("Content-Type", "application/json;charset=UTF-8"));
    restTemplate.setInterceptors(interceptors);

    String firebaseResponse = restTemplate.postForObject(FCM_API, entity, String.class);
    return CompletableFuture.completedFuture(firebaseResponse);
}

如果可能的话,我想避免将消息转换为例如 base64 字符串(这是其他问题中的答复之一)。

标签: javaspring-bootfirebase-cloud-messaging

解决方案


推荐阅读