Как отправить запрос реферера в URL для веб-просмотра - PullRequest
8 голосов
/ 17 марта 2011

Мне нужно отобразить веб-страницу в моем приложении для Android, которая ищет реферера для обхода системы безопасности.Я новичок в Android, поэтому знаю, как отобразить веб-страницу в веб-представлении, но не знаю, как отправить «referer» вместе с URL-запросом.Я уверен, что потребуется обновить HTTPHeaderField, но я не могу найти ссылку на него в Android.Приведенный ниже код используется для вызова веб-страницы, но без «referer» он говорит: «Отказано в доступе»

WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("http://www.mywebsite.com");

Я думаю, что ответ может лежать в методе WebView.LoadURL, который добавляетдополнительные заголовки, но я не могу найти никаких примеров.

Ответы [ 2 ]

16 голосов
/ 17 марта 2011

Для какого уровня API вам нужна эта функция?

Начиная с уровня API 8 есть вторая loadUrl функция:

  public void loadUrl (String url, Map<String, String> extraHeaders)

С помощью extraHeaders вы сможете отправить реферера.

<ч /> EDIT:

Вот полный рабочий пример:

  String url = "http://www.targetserver.tld/";

  Map<String, String> extraHeaders = new HashMap<String, String>();
  extraHeaders.put("Referer", "http://www.referer.tld/login.html");

  WebView wv;
  wv = (WebView) findViewById(R.id.webview);
  wv.loadUrl(url, extraHeaders);
0 голосов
/ 17 марта 2011

Вам потребуется использовать Intent Filters для захвата и изменения запросов WebView.

При условии, что вам нужно указать doamin.com/page.html в качестве источника ссылки

  1. Настроить фильтры намеренийзахватить все http-запросы в WebView
  2. Если запрос для «doamin.com/page.html», вернуть предварительно определенную страницу с тегом обновления для отправки пользователя в домен «http://www.mywebsite.com"
  3. ».com / page.html будет отправлен в качестве ссылки на mywebsite.com

В более новых API вы можете указывать заголовки в самом loadUrl.

...