通过IP加载网站并在Android Java中更改HTTP标头主机

时间:2015-03-22 00:56:00

标签: java android browser dns ip

我想用Java编写一个只是浏览器的应用程序。但我需要它来显示一些具有不同域名的网页。 FXP。 IP:10.0.0.2,域名" mydomain"。它应该像hosts文件中的这一行一样工作:

10.0.0.2 mydomain

这可以在不更改本地主机文件或创建本地DNS服务器的情况下实现吗?

我想在Android手机上使用此浏览器。

编辑: 我目前正在使用Webview加载这样的网站:

    String url = "http://10.0.0.2";
    WebView view = (WebView)this.findViewById(R.id.webView);
    view.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    view.getSettings().setJavaScriptEnabled(true);
    view.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.d("shouldOverrideUrlLoad", url);
            if ((url.startsWith("http://mydomain")) || (url.startsWith("http://10.0.0.2"))) {
                return false;
            }

            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            view.getContext().startActivity(intent);
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            Log.d("onPageStarted", url);
        }

        @Override
        public void onLoadResource(WebView view, String url) {
            Log.d("onLoadResource", url);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            Log.d("onPageFinished", url);
        }
    });

    Map<String, String> extraHeaders = new HashMap<String, String>();
    extraHeaders.put("Host","mydomain");

    view.loadUrl(url, extraHeaders);

它正在运作,但资源存在问题。我需要加载每个请求&#34; Host&#34;标题修改并通过IP作为url。我可以在onLoadResource事件中编辑它,或者我应该在哪里以及如何编辑它?

感谢您的回答!

0 个答案:

没有答案