我在懷疑我的方法之一是正確的方式。這是一個URI
的合成器,我用於我的http requests
。它僅從最終的Strings
獲取單獨靜態類中的數據,將它們合併在一起,並在必要時包含從服務器令牌接收的數據。它發生的所有URIs
都與令牌和唯一一個身份驗證,沒有它。我做了什麼:如何避免方法中的許多if/else條件?
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
。我該怎麼辦?
你第二次調用URIUtis.createURI總是覆蓋uri,不是嗎? – 2011-01-20 20:37:38