2011-03-17 6 views
7

보안을 우회하는 참조 원을 찾고있는 Android 앱에 웹 페이지를 표시해야합니다. 나는 안드로이드에 익숙하지 않기 때문에 웹보기에서 웹 페이지를 표시하는 방법을 알고 있지만 URL 요청과 함께 'referer'를 보내는 방법을 알지 못합니다. HTTPHeaderField를 업데이트해야한다고 확신하지만 Android에서 해당 참조를 찾을 수 없습니다. 아래의 코드 내가 '리퍼러'없이 웹 페이지 만을 가지고 사용하고 무엇은 URL에서 referer 요청을 웹보기로 전송하는 방법

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

내가 대답은 추가 헤더를 추가하는 WebView.LoadURL 방법에 거짓말 같아요 '액세스가 거부되었습니다'라고 그러나 나는 그것의 어떤 예를 찾을 수 없습니다.

답변

13

API 수준에서 해당 funktion이 필요합니까? 함께

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

extraHeaders 당신이 리퍼러를 보낼 수 있어야한다 :

는 API 레벨 8 년부터 초 loadUrl 기능이있다.


편집 :

여기에 완전한 작동 예를

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

답장을 보내 주셔서 감사합니다. 안드로이드 참조에서이 사실을 알고 있었지만 예제를 찾고 싶었습니다. 내 referer "myblog201.com/" – user616076

+0

예를 들어 주셔서 감사합니다, 그것을 시도하는 코드를 복사하지만 다음과 같은 오류가 발생합니다 'WebView 형식의 메서드 loadUrl (String) 인수에 적용 할 수 없습니다 (String, Map < String, String>) '그리고 추가 인수를 제거하라는 메시지가 나타납니다. 내가 뭔가 잘못하고 있는거야? – user616076

+0

사용중인 API 레벨은 무엇입니까? 필자가 작성한 것처럼 두 번째 매개 변수가있는 새로운 loadUrl-function은 API 레벨 8 이후에 존재합니다. – MacGucky

0

당신은 웹보기 요청을 캡처하고 수정하는 인 텐트 필터를 사용할 필요가있다.

  • 요청 "doamin.com/page.html위한 경우 웹보기에서 모든 HTTP 요청을 캡처하는 리퍼러로

    1. 설정 텐트 필터를 doamin.com/page.html 지정해야한다고 가정 ", 새로 고침 태그가있는 사전 정의 된 페이지를 반환하여 사용자를"http://www.mywebsite.com "에 보냅니다.
    2. domain.com/page.html은 mywebsite.com에 대한 참조 자로 전송됩니다.

    최신 API에서는 sp loadUrl 자체에서 헤더를 찾습니다.

  • +0

    예를 게시 할 수 있습니까? –