2

我正在为 android 编写应用程序,在应用程序中我使用了一些HttpPost请求。我有一项服务,我在固定时间安排 3 个请求。每 1.5 秒一次,每 7 秒一次,每 20 秒一次。大多数时候网络服务不返回任何东西。

我在设备上安装了我的应用程序并检查了 2 天。这个应用程序使用 40M 数据虽然viber只使用 4M 。(我通过检查设备设置中的数据使用部分找到了它。)

HttpPost一个简单的请求使用了多少数据?

如何减少我的应用程序中的数据使用量?

4

1 回答 1

4

好吧,唯一能够知道任何 POST 请求成本的人就是您。这在很大程度上取决于您发送的标头/数据。

HTTP 在发送的数据中引入了一些开销。例如,使用 cURL 只发布一对值 p1=v1 和 p2=v2,这些是发送的标头:

POST / HTTP/1.1
User-Agent: curl/7.35.0
Host: localhost
Accept: */*
Content-Length: 11
Content-Type: application/x-www-form-urlencoded

这些只是标题(正文为此添加了 11 个字节)。您可以猜到,每 1.5 秒执行一次会产生大量流量。

为了减少这种情况,你可以做一些事情:

  • 降低对服务器的请求率。您真的需要每 1.5 秒发布一次吗?
  • 如果您发布大量数据,请检查 HttpPost 是否允许您压缩您发送的数据/服务器是否支持 HTTP 压缩;
  • 考虑使用其他技术,如普通套接字/websockets。如果您发布的数据很小,这将有助于减少 HTTP 的开销。

编辑:我假设您正在使用 POST 请求将数据真正发布到服务器。如果您使用它从服务器获取某种状态,则(Web)套接字或使用推送通知之类的东西可以大大减少所需的请求。

于 2014-05-18T21:17:30.547 回答