BaseApi.java
package com.foxinmy.weixin4j.api;
import java.util.ResourceBundle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
/**
* API基础
*
* @className BaseApi
* @author jinyu(foxinmy@gmail.com)
* @date 2014年9月26日
* @since JDK 1.6
* @see <a href="http://mp.weixin.qq.com/wiki/index.php">微信公众平台API文档</a>
* @see <a href="http://qydev.weixin.qq.com/wiki/index.php">微信企业号API文档</a>
*/
public abstract class BaseApi {
protected final WeixinRequestExecutor weixinExecutor;
private final Pattern uriPattern = Pattern.compile("(\\{[^\\}]*\\})");
public BaseApi() {
this.weixinExecutor = new WeixinRequestExecutor();
}
protected abstract ResourceBundle weixinBundle();
protected String getRequestUri(String key) {
String url = weixinBundle().getString(key);
Matcher m = uriPattern.matcher(url);
StringBuffer sb = new StringBuffer();
String sub = null;
while (m.find()) {
sub = m.group();
m.appendReplacement(sb,
getRequestUri(sub.substring(1, sub.length() - 1)));
}
m.appendTail(sb);
return sb.toString();
}
}