2013-10-06 3 views
0

Я хотел создать сайт-прокси. Когда пользователь запрашивает URL-адрес. на стороне сервера я хотел запросить URL-адрес и создать объект, содержащий данные страницы (источник html, запрос ответа и т. д.)как передать страницу htmlunit как modelandview (весна)

Я обнаружил, что htmlunit подходит для моих требований.
Я хотел передать ответ от объекта htmlunit к браузеру пользователей.
(как ModelAndView (весна) если возможно.) Как это можно достичь?

@Test 
public void getElements() throws Exception { 
final WebClient webClient = new WebClient(); 
final HtmlPage page = webClient.getPage("http://some_url"); 
//I wanted to pass the "HtmlPage" to user's browser. 
} 
+0

Вы хотите сказать, что хотите получить содержимое 'http: // som_url', которое будет возвращено вашим контроллером? –

+0

yup. «новый ModelAndView (« redirect: »+ fwdUrl); или новый ModelAndView («forward:» + fwdUrl), «не поможет мне. –

ответ

0

Не так весна работает. Объект ModelAndView является держателем для View и Model. Имя View используется в сочетании с ViewResolver для визуализации ответа. Model служит для хранения атрибутов, которые могут потребоваться в процессе рендеринга.

Если вы хотите вернуть содержимое отдельного HTTP-запроса/ответа, вам необходимо выполнить HTTP-запрос, получить тело ответа и передать его в ответ HTTP. Выполните эти шаги

  1. запрос HTTP к приложению
  2. Ваш метод обработчик вызывается
  3. используется клиент HTTP для отправки нового запроса HTTP к некоторому URL
  4. Вы получаете ответ HTTP из этого URL
  5. Вы передаете ответ на свой HTTP-ответ.
+0

Я понимаю, о шаге 1,2,4 и 5, но я сомневаюсь в использовании htmlunit для отправки запроса и потока ответа от него. Я новичок в «htmlunit» –

+0

@ VishnudevK Взгляните на javadoc. У вас есть '' getWebResponse() '] (http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/SgmlPage.html #getWebResponse()), а затем ['getContentAsStream()'] (http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/WebResponse.html#getContentAsStream()) –

Смежные вопросы