diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2012-05-11 09:41:17 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2012-05-11 10:21:43 +0200 |
| commit | cd8a2b268dd451182ba7e9d068117cf938cefc38 (patch) | |
| tree | 4262a4f621a43a4c4a5e7aedced45108a6917f71 /main/src/cgeo/geocaching/network | |
| parent | bdf40be387b9d6598c05c8f49eef56d9684ccf99 (diff) | |
| download | cgeo-cd8a2b268dd451182ba7e9d068117cf938cefc38.zip cgeo-cd8a2b268dd451182ba7e9d068117cf938cefc38.tar.gz cgeo-cd8a2b268dd451182ba7e9d068117cf938cefc38.tar.bz2 | |
Refactoring: separate steps of network requests
This is needed to implement #583.
Diffstat (limited to 'main/src/cgeo/geocaching/network')
| -rw-r--r-- | main/src/cgeo/geocaching/network/Network.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/network/Network.java b/main/src/cgeo/geocaching/network/Network.java index 39c0cf5..55f6377 100644 --- a/main/src/cgeo/geocaching/network/Network.java +++ b/main/src/cgeo/geocaching/network/Network.java @@ -161,15 +161,39 @@ public abstract class Network { } } + addHeaders(request, headers, cacheFile); + + return doRepeatedRequests(request); + } + + /** + * Add headers to HTTP request. + * @param request + * the request to add headers to + * @param headers + * the headers to add (in addition to the standard headers), can be null + * @param cacheFile + * if non-null, the file to take ETag and If-Modified-Since information from + */ + private static void addHeaders(final HttpRequestBase request, final Parameters headers, final File cacheFile) { for (final NameValuePair header : Parameters.extend(Parameters.merge(headers, cacheHeaders(cacheFile)), "Accept-Charset", "utf-8,iso-8859-1;q=0.8,utf-16;q=0.8,*;q=0.7", "Accept-Language", "en-US,*;q=0.9", "X-Requested-With", "XMLHttpRequest")) { request.setHeader(header.getName(), header.getValue()); } - request.getParams().setParameter(CoreProtocolPNames.USER_AGENT, Network.USER_AGENT); + } + /** + * Retry a request for a few times. + * + * @param request + * the request to try + * @return + * the response, or null if there has been a failure + */ + private static HttpResponse doRepeatedRequests(final HttpRequestBase request) { final String reqLogStr = request.getMethod() + " " + Network.hidePassword(request.getURI().toString()); Log.d(reqLogStr); |
