在J2ME中发出http请求

时间:2009-05-26 18:52:31

标签: java http java-me httpwebrequest midp

我正在维护一个J2ME应用程序,我在应用程序初始化中找到了http://www.google.com的http请求。我问开发者为什么要求google。他说,通过这种方式,其他请求应用程序会更快。

我已将此请求移至google.com,其他请求速度较慢。

任何人都可以解释为什么会这样吗?如何在不提出先前请求的情况下更快地提出其他请求?

编辑:

在初始化中向谷歌发出请求:

  • 第一个请求(初始化后)= 20秒
  • 重复第一个请求= 5秒

在初始化时没有提出请求:

  • 第一次请求= 40秒
  • 重复第一个请求= 5秒

2 个答案:

答案 0 :(得分:4)

在移动设备上启动网络连接需要一段时间,并且JVM通常会在MIDlet运行期间保持连接打开(大多数现代连接按字节收费 - 边缘,GPRS,WiFi)。因此,如果在startApp上建立连接,您可能会发现连接将保持打开状态,并且所有进一步的通信都不需要打开连接,只需发送数据。如此快速和可靠!

此行为是特定于平台的,MIDP2并未将此规定为真(因此Nokias可能与Samsungs等不同)。

连接到127.0.0.1可能不会欺骗JVM,这可能决定它不需要打开GPRS连接。再次特定于平台。

詹姆斯

答案 1 :(得分:2)

...也许第一个请求初始化设备中的网络层(*),也可能是jvm。

我相信它也适用于www.microsoft.com: - )

*)我怀疑这取决于你在运行什么设备。我不知道最近会发生什么,但可能有什么。例如:启动无线电设备,与网络运营商建立会话,在jvm中加载和启动类。

尝试连接到127.0.0.1而不是谷歌,看看是否会使以后的尝试更快。

如果应用程序在执行第一次实际连接尝试之前需要花费一些时间进行大量初始化,则可以提前启动新线程以进行连接尝试。也许这会减少总的等待时间。