首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android: SOAP和JTDS开销

Android: SOAP和JTDS开销
EN

Stack Overflow用户
提问于 2012-11-28 00:38:06
回答 1查看 189关注 0票数 0

我目前正在做的是将带有时间戳和其他参数的GPS数据发送到远程MSSQL数据库。首先,我通过ksoap2将其发送到SOAP WebService。由于巨大的开销,我寻找了一种替代方案,并通过JTDS实现了直接插入它的数据传输。在我成功地实现了这两种方法之后,我开始对它们进行比较。我试着找出哪一个造成了更大的流量。我分析了网络流量,令我惊讶的是,SOAP比JTDS更便宜。是不是很奇怪?我已经发送了相同的数据。我使用的是JTDS 1.2.7驱动程序。ksoap导致大约1.8 kByte流量,而为了比较,JTDS导致大约2.1 kByte。

有没有人做过同样的体验,或者能告诉我我可以改变什么?

以下是JTDS代码。也许有人能告诉我,是什么导致了交通:

代码语言:javascript
复制
try {
   Class.forName("net.sourceforge.jtds.jdbc.Driver");
   String connString = "jdbc:jtds:sqlserver://192.XXX.X.XX/xxxx;encrypt=false;user=XX;password=XX;instance=SQLEXPRESS;";
   conn = DriverManager.getConnection(connString);
} catch (Exception ex){
   ex.printStackTrace();
}

try {
  Log.w("Connection", "open");

  CallableStatement cs = conn.prepareCall("{ call SetGPS(?, ?, ?, ?, ?, ?, ?)}");
  cs.setString(2, latitude);
  cs.setString(3, longitude);
  cs.setInt(4, ID);
  cs.setString(5, timestamp);
  cs.setString(6, IMEI);
  cs.setInt(7, userID);
  cs.registerOutParameter(1, Types.VARCHAR);

  cs.execute();
  String response = cs.getString(1);

  Log.i("GPS Response:", response);

  conn.close();
} catch (Exception ex){
    ex.printStackTrace();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-28 22:01:07

好吧,我发现是连接建立导致了JTDS四分之三的网络流量。带有参数的实际存储过程调用仅导致大约400字节的通信量。

因此,如果我们不是在每次想要通过JTDS (JDBC)发送数据时都建立连接,那么我们就比使用SOAP便宜得多。

希望有一天这能帮助其他人;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13588851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档