在Java上对服务器进行http查询的有效方法

时间:2010-07-01 12:04:21

标签: java http querying

我正在研究一种对具有http接口的数据库进行大量查询的软件。所以我的程序解析并处理长http:// address ..

形式的查询

我已经意识到整个系统的瓶颈是查询,即使我坐在拥有千兆位连接的大学网络中,数据传输也几乎不会超过20KB / s。最近我的一位朋友提到我可能以无效的方式编写了我的代码,这可能是这个过程缺乏速度的原因。所以我的问题是从Java中获取Web源数据的最快/最有效的方法是什么。

这是我现在的代码:

private void handleQuery(String urlQuery,int qNumber, BufferedWriter out){
    BufferedReader reader;
    try{
        // IO - routines: read from the webservice and print to a log file
        reader = new BufferedReader(new InputStreamReader(openURL(urlQuery)));
        ....
        }
     }

private InputStream openURL(String urlName)
    throws IOException
 {
    URL url = new URL(urlName);
    URLConnection urlConnection = url.openConnection();
    return urlConnection.getInputStream();
 }

2 个答案:

答案 0 :(得分:2)

您的代码对我来说很好。代码片段没有解释慢速阅读。

可能存在的问题是,

  1. 网络问题。进行端到端网络测试,以确保网络速度与您想象的一样快。
  2. 服务器问题。也许服务器太慢了。
  3. 线程争用。检查您是否有任何线程问题。
  4. 分析器和网络跟踪将指出问题所在。

答案 1 :(得分:1)

您提供的代码中没有任何内容应该是瓶颈。问题可能在其他地方;例如您在阅读它们之后对字符做了什么,远程服务器如何编写它们,网络或webproxy问题等等。