java - 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 字符串(这是其他问题中的答复之一)。
解决方案
推荐阅读
- android - android API eval 26 中未收到通知
- java - 线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/hadoop/fs/FSDataInputStrea
- javascript - 如何在反应本机应用程序中实现recaptcha?
- angular - 想知道从哪里接收数据:TypeScript
- php - 如何使用 PHP 脚本在 SQL 数据库中创建子列?
- concurrency - 使用 8051 微控制器进行频率测量
- c++ - 循环逻辑将二维数组值存储在一个线性向量中
- python - Excel 模糊查找中使用的算法
- random - 在 LiveCode 中使用 random()
- azure - 为什么 IotHub 事件在存储在时序见解中时会延迟?