我正在开发一个通过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;
    }


如果您想获得更多的信息/代码片段,请写在注释中。

谢谢你的帮助

最佳答案

您需要通过某些监视程序来跟踪您的请求。之后,您可以看到哪个节点会产生延迟。请显示此数据。

07-24 15:44