나는 SMPP 서버로부터 메시지를 수신하고 수신 된 메시지를 사용자 웹 서비스에 전달하는 응용 프로그램을 보유하고 있습니다. ${originator}
, ${destination}
, ${content}
자신의 패턴이자바에서 URL을 구문 분석하는 템플릿
http://www.example.com/get.php?from=${originator}&to=${destination}&data=${content}
http://www.example.com/submit?origin=${originator}&dst=${destination}&cnt=${content}
그들 모두 : 모든 사용자는이 같은 데이터베이스의 URL이 있습니다. URL에 다른 매개 변수가있을 수도 있고 그렇지 않을 수도 있습니다.
URL url = new URL(result);
int port = url.getPort();
uri = new URI(url.getProtocol(), null, url.getHost(), port == -1 ? 80 : port, url.getPath(), url.getQuery(), null);
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = null;
try {
request = new HttpGet(uri);
client.execute(request)
} catch (Exception ex) {
if (request != null) {
request.releaseConnection();
}
}
나는 사용자가 보낼 수 있기 때문에 약간의 인코딩을하려고 노력 :
private StringTemplateParser stp = new StringTemplateParser();
private final Map<String, String> args = new HashMap<>();
args.put("originator", msg.getOriginator());
args.put("destination", msg.getDestination());
args.put("content", msg.getContent());
String result = stp.parse(deliveryUrl, new MacroResolver() {
@Override
public String resolve(String macroName) {
return args.get(macroName);
}
});
가 그럼 난 사용자 URL 호출하는 아파치 웹 클라이언트를 사용 : 나는 데이터베이스에서 사용자 URL을받은 후 인수 이상 교체 Jodd StringTemplateParser
를 사용 %$&
과 같은 문자가 포함 된 텍스트 문제는 content
에 hello&x=2&c=3243
과 같은 내용이 포함 된 경우에만 hello
을 얻는 것입니다. URI
클래스는 일반 매개 변수 GET
쿼리 매개 변수로 처리합니다. 누구든지 도와 줄 수 있습니까?