mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
With http network logs
This commit is contained in:
parent
25b463901f
commit
deb6e5b390
2 changed files with 82 additions and 0 deletions
|
|
@ -9,8 +9,13 @@ import android.support.annotation.VisibleForTesting;
|
|||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.facebook.stetho.okhttp3.StethoInterceptor;
|
||||
import com.facebook.stetho.urlconnection.StethoURLConnectionManager;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import org.apache.http.HttpException;
|
||||
import org.apache.http.HttpRequest;
|
||||
import org.apache.http.HttpRequestInterceptor;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.conn.ClientConnectionManager;
|
||||
import org.apache.http.conn.scheme.PlainSocketFactory;
|
||||
|
|
@ -22,6 +27,7 @@ import org.apache.http.impl.client.DefaultHttpClient;
|
|||
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
|
||||
import org.apache.http.params.BasicHttpParams;
|
||||
import org.apache.http.params.CoreProtocolPNames;
|
||||
import org.apache.http.protocol.HttpContext;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.mediawiki.api.ApiResult;
|
||||
import org.mediawiki.api.MWApi;
|
||||
|
|
@ -35,6 +41,7 @@ import java.net.URL;
|
|||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
|
@ -85,6 +92,7 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi {
|
|||
ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
|
||||
params.setParameter(CoreProtocolPNames.USER_AGENT, getUserAgent());
|
||||
httpClient = new DefaultHttpClient(cm, params);
|
||||
httpClient.addRequestInterceptor(NetworkInterceptors.getHttpRequestInterceptor());
|
||||
api = new MWApi(apiURL, httpClient);
|
||||
wikidataApi = new MWApi(wikidatApiURL, httpClient);
|
||||
this.defaultPreferences = defaultPreferences;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
package fr.free.nrw.commons.mwapi;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpRequest;
|
||||
import org.apache.http.HttpRequestInterceptor;
|
||||
import org.apache.http.impl.client.ClientParamsStack;
|
||||
import org.apache.http.params.HttpParamsNames;
|
||||
import org.apache.http.protocol.HttpContext;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import timber.log.Timber;
|
||||
|
||||
public class NetworkInterceptors {
|
||||
|
||||
@NonNull
|
||||
public static HttpRequestInterceptor getHttpRequestInterceptor() {
|
||||
return (HttpRequest request, HttpContext httpContext) -> {
|
||||
Timber.v("<<<<<<<<<<<<<< START OF REQUEST LOGGING [%s] >>>>>>>>>>>>", request.getRequestLine().getUri());
|
||||
|
||||
Timber.v("Request line:\n %s", request.getRequestLine().toString());
|
||||
logRequestParams(request);
|
||||
logRequestHeaders(request);
|
||||
Timber.v("Protocol version:\n %s", request.getProtocolVersion());
|
||||
|
||||
Timber.v("<<<<<<<<<<<<<< END OF REQUEST LOGGING [%s] >>>>>>>>>>>>", request.getRequestLine().getUri());
|
||||
};
|
||||
}
|
||||
|
||||
private static void logRequestParams(HttpRequest request) {
|
||||
Set<String> names = new HashSet<>();
|
||||
if (request.getParams() instanceof ClientParamsStack) {
|
||||
ClientParamsStack cps = (ClientParamsStack) request.getParams();
|
||||
if (cps.getApplicationParams() != null
|
||||
&& cps.getRequestParams() instanceof HttpParamsNames) {
|
||||
names.addAll(((HttpParamsNames) cps.getApplicationParams()).getNames());
|
||||
}
|
||||
if (cps.getClientParams() != null
|
||||
&& cps.getClientParams() instanceof HttpParamsNames) {
|
||||
names.addAll(((HttpParamsNames) cps.getClientParams()).getNames());
|
||||
}
|
||||
if (cps.getRequestParams() != null
|
||||
&& cps.getRequestParams() instanceof HttpParamsNames) {
|
||||
names.addAll(((HttpParamsNames) cps.getRequestParams()).getNames());
|
||||
}
|
||||
if (cps.getOverrideParams() != null
|
||||
&& cps.getRequestParams() instanceof HttpParamsNames) {
|
||||
names.addAll(((HttpParamsNames) cps.getOverrideParams()).getNames());
|
||||
}
|
||||
} else {
|
||||
HttpParamsNames params = (HttpParamsNames) request.getParams();
|
||||
names = params.getNames();
|
||||
}
|
||||
|
||||
Timber.v("<<<<<<<<<<<<<< REQUEST PARAMS >>>>>>>>>>>>");
|
||||
for (String name : names) {
|
||||
Timber.v("Param >> %s: %s", name, request.getParams().getParameter(name));
|
||||
}
|
||||
Timber.v("<<<<<<<<<<<<<< REQUEST PARAMS >>>>>>>>>>>>");
|
||||
}
|
||||
|
||||
private static void logRequestHeaders(HttpRequest request) {
|
||||
Header[] headerFields = request.getAllHeaders();
|
||||
|
||||
Timber.v("<<<<<<<<<<<<<< HEADERS >>>>>>>>>>>>");
|
||||
for (int e = 0; e < request.getAllHeaders().length; e++) {
|
||||
Timber.v("Header >> %s: %s", headerFields[e].getName(), headerFields[e].getValue());
|
||||
}
|
||||
Timber.v("<<<<<<<<<<<<<< HEADERS >>>>>>>>>>>>");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue