我想订阅Amazon SNS主题;我的订户注册了协议“http” .
amazonSNSClient.subscribe(new SubscribeRequest(topicArn, "http", callbackUrl);
发布消息时,messageStructure设置为“json”,消息内容包含“default”,“http”和“https”的条目 .
JSONObject jsonMessage = new JSONObject();
jsonMessage.put(DEFAULT, "foo");
jsonMessage.put(HTTPS, someOtherJsonObject);
jsonMessage.put(HTTP, someOtherJsonObject);
PublishRequest publishRequest = new PublishRequest(topicArn, jsonMessage.toString());
publishRequest.setMessageStructure(MESSAGE_TYPE_JSON);
amazonSNSClient.publish(publishRequest);
亚马逊成功收到已发布的消息,并向订阅者发送通知 . AWS控制台中的验证确认我的订户已订阅“http”协议 . 但是,订户接收“默认”消息而不是“http”(json)消息 . 可能出现什么问题,为什么亚马逊会向用户推送“默认”通知而不是“http”通知?
1 回答
你能告诉我们发送的确切字符串吗?我的猜测是,当你应该只使用字符串时,你正在将JSON结构嵌入到消息中 .
例如,我告诉你发送这样的东西:
实际上你需要发送的是:
我会尝试将代码更改为: