2016-02-15 1 views
0

Как подождать, пока ответ будет загружен, а затем получить страницу?Я пытаюсь открыть ответ формы в java, но поскольку для загрузки требуется некоторое время, java не может получить нужный контент

 url = new URL("http://somesite.com/sompage.jsp?somefield=something");   

     URLConnection conn = url.openConnection(); 

     BufferedReader br = new BufferedReader(
          new InputStreamReader(conn.getInputStream())); 

     String inputLine; 

     while ((inputLine = br.readLine()) != null) { 
      System.out.println(inputLine); 
     } 


     br.close(); 
+0

Что происходит? – andrucz

+0

Веб-страница должна получить некоторые значения из веб-службы. То, что я вижу в html, - «Async-ответ еще не получен». – user3055952

ответ

0

Я предлагаю вам использовать библиотеку третьей стороны называется Selenium. Это, в основном, безгласный браузер, который может подождать, пока элемент, который вы ищете, загружается полностью. Простой пример, взятый из других SO post бы:

WebDriverWait wait = new WebDriverWait(webDriver, timeoutValue); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>)); 
0
url = new URL("http://somesite.com/sompage.jsp?somefield=something"); 
URLConnection conn = url.openConnection(); 
try { 
    Thread.sleep(2000); // 1000 milliseconds is one second. Wait for IM Ticket Generation 
} catch (InterruptedException ex) { 
    Thread.currentThread().interrupt(); 
} 
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
String inputLine; 
while ((inputLine = br.readLine()) != null) { 
    System.out.println(inputLine); 
} 
br.close(); 

Добавление сна перед использованием ресурса работал.