我正在开发一个通过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;
}
如果您想获得更多的信息/代码片段,请写在注释中。
谢谢你的帮助
最佳答案
您需要通过某些监视程序来跟踪您的请求。之后,您可以看到哪个节点会产生延迟。请显示此数据。