При использовании протокола HTTP для получения JSON данных из API запрос обрабатывался менее 100 мс. Это приводит к загрузке страницы менее чем за 2,5 секунды. Когда я переключился на HTTPS, в обоих методах OkHttp и HttpsURLConnection, потребовалось целых 12 сгибов, почти 30 секунд, чтобы полностью загрузить приложение полной информацией.
Нижеприведенный код запускается только один раз при запуске приложения:
static OkHttpClient client;
static Request.Builder query;
static Connection conn;
public static void OneTime(Context context){
OkHttpClient.Builder clientB = new OkHttpClient.Builder();
client=clientB.build();
}
Функция «Ниже» используется для получения ответа от вызова:
public static String performPostCall(String requestURL,HashMap<String, String> postDataParams) {
if(!postDataParams.containsKey("token")) {
SharedPreferences sp=Tools.context.getSharedPreferences("eTutionPro",MODE_PRIVATE);;
postDataParams.put("token", Tools.token == null ? sp.getString("SessionID", "") : Tools.token);
}
String response = "";
try {
FormBody.Builder formBody = new FormBody.Builder();
postDataParams=fixNull(postDataParams);
for(Map.Entry<String, String> entry : postDataParams.entrySet()){
formBody.add(entry.getKey(),entry.getValue());
}
Request.Builder request;
if(requestURL.endsWith("requests.php"))
request=query;
else
request = new Request.Builder().url(requestURL);
request.cacheControl(new CacheControl.Builder()
.build());
request.post(formBody.build());
Response r=client.newCall(request.build()).execute();
response=r.body().string();
} catch (Exception e) {
e.printStackTrace();
response="";
}
return response;
}
Есть предложения о том, как улучшить время ответа?