如何使用 RestTemplate 进行 GSM 编码
How to GSM Encode using RestTemplate
我在为基于 SMS 的产品编码“#”字符时遇到问题。
SMS 使用 GET 请求发送到 SMS 网关提供商提供的 API。我需要发送一条简单的消息 "Dial #121#",但是 Phone 上收到的短信没有显示“#”字符。
该应用程序基于 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);
Phone 上的输出:拨号
预期输出:拨#121#
请协助。
我想你先编码你的 URL:
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);
问题已通过使用 org.apache.httpcomponents:httpclient
http clinet 而不是 Sprint Rest 模板得到解决
我在为基于 SMS 的产品编码“#”字符时遇到问题。 SMS 使用 GET 请求发送到 SMS 网关提供商提供的 API。我需要发送一条简单的消息 "Dial #121#",但是 Phone 上收到的短信没有显示“#”字符。
该应用程序基于 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);
Phone 上的输出:拨号
预期输出:拨#121#
请协助。
我想你先编码你的 URL:
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);
问题已通过使用 org.apache.httpcomponents:httpclient
http clinet 而不是 Sprint Rest 模板得到解决