对于我的一种方法,我怀疑是正确的。这是URI
的合成者,我用于http requests
。它只从最后Strings
的单独静态类中获取数据,将它们合并在一起,并在必要时包含从服务器令牌接收的数据。它发生了所有URIs
都有令牌和唯一的身份验证,没有它。我做了什么:
private URI urlComposer(String apiUri, String token) {
URI uri = null;
try {
if(apiUri.equals("POST_AUTH_URL")) {
uri = URIUtils.createURI(null, MyConfig.WEB_SERVER, -1, apiUri, null, null);
return uri;
}
String tmp = apiUri.toString();
String[] array = tmp.split("<token>");
tmp = array[0] + auth.getToken() + array[1];
uri = URIUtils.createURI(null, MyConfig.WEB_SERVER, -1, tmp, null, null);
if (MyConfig.DEBUG) Log.d("Dev", "Constructed url " + uri);
return uri;
} catch (URISyntaxException e) {
if (MyConfig.DEBUG) Log.d("Dev", "urlComposer was unable to construct a URL");
e.printStackTrace();
}
return null;
}
尝试展望未来我不喜欢生成更多if / else语句的想法,如果我有更多特殊情况,例如POST_AUTH_URL
。一方面我想要调用唯一一个方法来构造URI,另一方面我不想要这些ifs
。我该怎么办?
答案 0 :(得分:2)
如果您始终只设置不同的URI,则可以使用地图:
uriMap.put("POST_AUTH_URL", URIUtils.createURI(null, MyConfig.WEB_SERVER, -1, apiUri, null, null));
您可以稍后访问此地图:
uri = uriMap.get(apiUri);
答案 1 :(得分:0)