如何使用RestTemplate进行GSM编码

时间:2018-02-23 00:41:32

标签: java spring-boot resttemplate gsm

我无法编码'#'基于SMS的产品的字符。 SMS使用GET请求发送到SMS网关提供商提供的API。我需要发送一条简单的消息"拨打#121#",但是在电话上收到的短信没有显示'#'字符。

应用程序基于Spring Boot构建,我使用RestTemplate发出请求

RestTemplate restTemplate = new RestTemplate();
String message = "Dial #121#"; //example message
String baseUri = "http://api.example.com?msisdn=1234567&message=" + message;
ResponseEntity<String> response = restTemplate.getForEntity(baseUri, String.class);

手机输出:拨打

预期输出:拨#121#

请协助。

2 个答案:

答案 0 :(得分:1)

我认为您首先对您的网址进行编码:

RestTemplate restTemplate = new RestTemplate();
String message = "Dial #121#"; //example message
String baseUri = "http://api.example.com?msisdn=1234567&message={message}";
URI expanded = new UriTemplate(baseUri ).expand(message);
baseUri = URLDecoder.decode(expanded.toString(), "UTF-8");
ResponseEntity<String> response = restTemplate.getForEntity(baseUri, String.class);

答案 1 :(得分:0)

此问题已通过使用org.apache.httpcomponents:httpclient http clinet而不是Sprint Rest模板来解决