симуляция кликов - PullRequest
0 голосов
/ 26 мая 2011

Мне было интересно, можно ли загрузить фрейм с веб-сайта, заполнить текстовое поле, нажать кнопку «Отправить» и получить результаты с этой страницы? Мне нужно сделать это в фоновом режиме, чтобы мое веб-представление никогда не показывалось, показывались только текст редактирования и текстовое представление ...

Ответы [ 2 ]

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

Вы можете использовать httpGet для получения страниц и httpPost для публикации результатов, когда пользователь нажимает кнопку отправки. Все, что вам нужно сделать, это убедиться, что сообщение содержит данные, которые ожидает веб-страница, и в том формате, в котором она ожидает.

Хороший способ проверить, что требуется, - добавить дополнительный заголовок Firefox Live HHTP (https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/).

Например, GET может быть

URI uri = new URI(<your URL here>);
HttpGet request = new HttpGet(uri);
HttpResponse response = defaultHttpClient.execute(request);
HttpEntity entity = response.getEntity();
String content = EntityUtils.toString(entity);

Затем вы создаете представление Android с помощью текстовых полей, кнопок редактирования и т. Д. Когда пользователь нажимает кнопку Отправить, вы получаете текст из текстового поля редактирования, а затем создаете POST, как показано ниже.

URI uri = new URI(<your URL here - without a host>);
HttpPost request = new HttpPost(urri);
request.setHeader("Content-type", "application/x-www-form-urlencoded");

List<NameValuePair> bodyParams = new ArrayList<NameValuePair>();
bodyParams.add(new BasicNameValuePair(<parameter name string>, <parameter value string>);
// repeat additional bodyParams.add() as necessary for further parameters
request.setEntity(new UrlEncodedFormEntity(bodyParams, HTTP.UTF_8));
HttpHost httpHost = new HttpHost(<your host here>);
HttpResponse response = defaultHttpClient.execute(httpHost, request);
HttpEntity entity = response.getEntity();
String content = EntityUtils.toString(entity);
0 голосов
/ 26 мая 2011

Не можете ли вы сделать то, что вы упомянули, используя HTTP-запрос?Для чего вам нужен WebView?

...