我正在开发一个通过HTTPS连接到后端服务器的Android应用程序。当我使用移动数据时,一切都正常工作 - 没有错误和其他类似的事情。但是,当我打开WiFi并尝试从后端服务器获取一些数据时,虽然我只下载了两行文本,但我的延迟时间很长(甚至40秒)。我还注意到,如果我通过HTTP连接到后端服务器,使用移动数据和WiFi都没有问题。如果我正确设置SSL协议并且一切似乎都已正确完成,我已经多次测试过。
我向您提供了一段代码,该代码负责从应用程序连接后端服务器:
private boolean downloadData() {
try {
URI uri = new URI("https://www.example.com/resources/script/get_data.php");
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(uri);
httpPost.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
httpPost.setHeader("Pragma", "no-cache");
HttpResponse httpResponse = httpClient.execute(httpPost);
String result = EntityUtils.toString(httpResponse.getEntity());
if(result.equals("error")) {
return false;
}
result = result.replaceAll("\"", "\\\"");
JSONArray jsonArray = new JSONArray(result);
// code which receive and parse data from JSON
return true;
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
如果您想获得更多信息/代码,请写下评论。
感谢您的帮助
答案 0 :(得分:0)
您需要通过某些监控程序跟踪您的请求。之后,您可以看到哪个节点创建了延迟。请显示这些数据。