diff options
| -rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 8 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/connector/gc/GCConnector.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/network/Login.java | 41 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/network/Network.java | 45 |
4 files changed, 48 insertions, 50 deletions
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java index 3df00d7..9846057 100644 --- a/main/src/cgeo/geocaching/cgBase.java +++ b/main/src/cgeo/geocaching/cgBase.java @@ -1359,7 +1359,7 @@ public class cgBase { final String uri = "http://www.geocaching.com/seek/nearest.aspx"; final String fullUri = uri + "?" + addFToParams(params, false, true); - final String page = Network.getRequestLogged(uri, addFToParams(params, my, true)); + final String page = Login.getRequestLogged(uri, addFToParams(params, my, true)); if (StringUtils.isBlank(page)) { Log.e("cgeoBase.searchByAny: No data from server"); @@ -1439,7 +1439,7 @@ public class cgBase { params.put("id", id); } - final String page = Network.getRequestLogged("http://www.geocaching.com/track/details.aspx", params); + final String page = Login.getRequestLogged("http://www.geocaching.com/track/details.aspx", params); if (StringUtils.isBlank(page)) { Log.e("cgeoBase.searchTrackable: No data from server"); @@ -1691,7 +1691,7 @@ public class cgBase { */ public static int addToWatchlist(final cgCache cache) { final String uri = "http://www.geocaching.com/my/watchlist.aspx?w=" + cache.getCacheId(); - String page = Network.postRequestLogged(uri); + String page = Login.postRequestLogged(uri); if (StringUtils.isBlank(page)) { Log.e("cgBase.addToWatchlist: No data from server"); @@ -1717,7 +1717,7 @@ public class cgBase { */ public static int removeFromWatchlist(final cgCache cache) { final String uri = "http://www.geocaching.com/my/watchlist.aspx?ds=1&action=rem&id=" + cache.getCacheId(); - String page = Network.postRequestLogged(uri); + String page = Login.postRequestLogged(uri); if (StringUtils.isBlank(page)) { Log.e("cgBase.removeFromWatchlist: No data from server"); diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java index e68f9a2..2f21696 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java @@ -9,7 +9,7 @@ import cgeo.geocaching.cgeoapplication; import cgeo.geocaching.connector.AbstractConnector; import cgeo.geocaching.enumerations.StatusCode; import cgeo.geocaching.geopoint.Viewport; -import cgeo.geocaching.network.Network; +import cgeo.geocaching.network.Login; import cgeo.geocaching.network.Parameters; import cgeo.geocaching.utils.CancellableHandler; import cgeo.geocaching.utils.Log; @@ -104,7 +104,7 @@ public class GCConnector extends AbstractConnector { cgBase.sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_loadpage); - final String page = Network.getRequestLogged("http://www.geocaching.com/seek/cache_details.aspx", params); + final String page = Login.getRequestLogged("http://www.geocaching.com/seek/cache_details.aspx", params); if (StringUtils.isEmpty(page)) { final SearchResult search = new SearchResult(); diff --git a/main/src/cgeo/geocaching/network/Login.java b/main/src/cgeo/geocaching/network/Login.java index f2a4582..8e1227a 100644 --- a/main/src/cgeo/geocaching/network/Login.java +++ b/main/src/cgeo/geocaching/network/Login.java @@ -378,4 +378,45 @@ public abstract class Login { putViewstates(params, getViewstates(page)); } + /** + * POST HTTP request. Do the request a second time if the user is not logged in + * + * @param uri + * @return + */ + public static String postRequestLogged(final String uri) { + HttpResponse response = Network.postRequest(uri, null); + String data = Network.getResponseData(response); + + if (!getLoginStatus(data)) { + if (login() == StatusCode.NO_ERROR) { + response = Network.postRequest(uri, null); + data = Network.getResponseData(response); + } else { + Log.i("Working as guest."); + } + } + return data; + } + + /** + * GET HTTP request. Do the request a second time if the user is not logged in + * + * @param uri + * @param params + * @return + */ + public static String getRequestLogged(final String uri, final Parameters params) { + final String data = Network.getResponseData(Network.getRequest(uri, params)); + + if (!getLoginStatus(data)) { + if (login() == StatusCode.NO_ERROR) { + return Network.getResponseData(Network.getRequest(uri, params)); + } else { + Log.i("Working as guest."); + } + } + return data; + } + } diff --git a/main/src/cgeo/geocaching/network/Network.java b/main/src/cgeo/geocaching/network/Network.java index d330156..8b7ef3c 100644 --- a/main/src/cgeo/geocaching/network/Network.java +++ b/main/src/cgeo/geocaching/network/Network.java @@ -1,6 +1,5 @@ package cgeo.geocaching.network; -import cgeo.geocaching.enumerations.StatusCode; import cgeo.geocaching.files.LocalStorage; import cgeo.geocaching.utils.BaseUtils; import cgeo.geocaching.utils.Log; @@ -40,7 +39,6 @@ import java.io.InputStream; import java.net.URLEncoder; import java.util.zip.GZIPInputStream; - public abstract class Network { static class GzipDecompressingEntity extends HttpEntityWrapper { @@ -289,54 +287,13 @@ public abstract class Network { return Network.getResponseData(response, true); } - static public String getResponseData(final HttpResponse response, boolean replaceWhitespace) { + public static String getResponseData(final HttpResponse response, boolean replaceWhitespace) { if (!isSuccess(response)) { return null; } return getResponseDataNoError(response, replaceWhitespace); } - /** - * POST HTTP request. Do the request a second time if the user is not logged in - * - * @param uri - * @return - */ - public static String postRequestLogged(final String uri) { - HttpResponse response = postRequest(uri, null); - String data = getResponseData(response); - - if (!Login.getLoginStatus(data)) { - if (Login.login() == StatusCode.NO_ERROR) { - response = postRequest(uri, null); - data = getResponseData(response); - } else { - Log.i("Working as guest."); - } - } - return data; - } - - /** - * GET HTTP request. Do the request a second time if the user is not logged in - * - * @param uri - * @param params - * @return - */ - public static String getRequestLogged(final String uri, final Parameters params) { - final String data = getResponseData(getRequest(uri, params)); - - if (!Login.getLoginStatus(data)) { - if (Login.login() == StatusCode.NO_ERROR) { - return getResponseData(getRequest(uri, params)); - } else { - Log.i("Working as guest."); - } - } - return data; - } - public static String urlencode_rfc3986(String text) { return StringUtils.replace(URLEncoder.encode(text).replace("+", "%20"), "%7E", "~"); } |
