gpt4 book ai didi

java - 如何减少向远程服务器发送数据的时间?

转载 作者:行者123 更新时间:2023-12-01 14:46:56 25 4
gpt4 key购买 nike

例如我的平板电脑中存储了 10MB 数据。数据具有列表结构。列表中的每个条目大约为 3500 字节。

目前,我每次发送一个条目,代码如下:

    HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(ipport+ phpHandler);
HttpResponse response = null;

try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "utf-8"));
response = httpclient.execute(httppost);
} catch (UnsupportedEncodingException e) {
} catch (ClientProtocolException e) {
} catch (IOException e) {
}

但是要发送这10MB的数据,却花了很长时间。每次发送一条条目大约需要1秒。

有什么办法可以提高效率吗?

最佳答案

您可以构建一个包含所有实体的 JSON 字符串对象,然后使用 gzip 或任何其他压缩方案对其进行压缩。

构建 JSON 对象的好处是您可以将所有对象作为一个请求传输,而不是单独发送。这将消除每次建立新连接的延迟。

// your data list = listData
JSONArray newArray = new JSONArray();
for (int i = 0, lsize = listData.size(); i < lsize; i++) {
try {
newArray.put(i, listData.get(i));
} catch (JSONException e) {
e.printStackTrace();
}
}

此代码将使用 listData 中的所有元素构建一个 JSONArray(它应该是字符串列表)

现在您可以使用轻松将 JSONArray 转换为字符串

newArray.toString()

现在您可以通过网络发送此 JSON 字符串,并且可以轻松地以任何服务器端语言反序列化 JSON 对象。

至于 Gzip 压缩,您可能想看看这个 link

这是一个关于在 android 中通过 HTTP 发送 GZip 压缩数据的问题
GZip POST request with HTTPClient in Java

关于java - 如何减少向远程服务器发送数据的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com