我无法编码'#'基于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#
请协助。
答案 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模板来解决