Java - URL-соединение в потоках - PullRequest
0 голосов
/ 09 мая 2011

В настоящее время у меня есть проект, в котором разные параметры запрашиваются из онлайн-файла CGI, и каждый запрос должен обрабатываться в разных потоках. Когда я запускаю свой код сам по себе, он прекрасно работает, однако, кажется, он не соединяется, когда я помещаю его в поток. Мой код ниже:

public void run() {
    connect();
}


public synchronized void connect(){
    StringBuffer response = new StringBuffer("");
    try {

        String data = "year=" + year + "&top=" + numNames + "number=";
        // Send data
        URL url = new URL("http://www.ssa.gov/cgi-bin/popularnames.cgi");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;

        while ((line = rd.readLine()) != null) {
            response.append(line);
        }
        wr.close();
        rd.close();
    } catch (Exception e) {
        System.out.println(e);
    }
System.out.println(response);
        }
    }

1 Ответ

0 голосов
/ 09 мая 2011

Удалить синхронизированный вызов при подключении.Это должно решить вашу проблему

public synchronized void connect () {

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...