WebView:加载URL时请求错误

问题描述 投票:3回答:6

当我尝试在WebView中加载URL时:

private final WebViewClient webViewClient = new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        loadUrl(url);
        return true;
    }
};
webView.setWebViewClient(webViewClient);
webView.loadUrl("https://post.craigslist.org/");

我在页面上获得此html:

错误请求

您的浏览器发送了此服务器无法理解的请求。

“在此处输入图像描述”

onReceivedError(WebView view, int errorCode, String description, String failingUrl)回调中也没有任何内容。

android webview
6个回答
2
投票

尝试这样:


2
投票

尝试更改


1
投票
public boolean shouldOverrideUrlLoading(WebView view, String url) { return super.shouldOverrideUrlLoading(view, url); }

我希望这会对您有所帮助。

更新

mWebView = (WebView) getView().findViewById(R.id.webView1);
if (Patterns.WEB_URL.matcher(url).matches())
        mWebView.loadUrl(url);      

webClient = new WebViewClient() {       

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return super.shouldOverrideUrlLoading(view, url);
    }

    @Override
    public void onFormResubmission(WebView view, Message dontResend,
            Message resend) {
        // TODO Auto-generated method stub
        super.onFormResubmission(view, dontResend, resend);
    }

    @Override
    public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);
        if (url.contains("purchasehistory.html")) {
            mURLNavigation.onURLNavigation(3);
        }
    }

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

WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(webClient);

此代码对我有用。.

遇到此类问题时,最好保留API级别编号。 


1
投票
loadUrl(“ http://google.com”)

并且重定向在API级别11及更低版本上不起作用。 (正如您对阿卜杜勒的回答,它不称为)

使用替代方法:我的意思是重写onPageStarted,它适用于所有版本。但是,唯一的是稍后再称呼它。

严格随机解决:

在Android 4.1.1上使用WebView.getSettings()。setUseWideViewPort(true),它可以正常工作。

这是在WebView中加载URL的方式:

private WebView URL URL = (WebView) WebDialog.findViewById(R.id.url1); URL.setWebViewClient(new WebViewClient()); URL.setScrollbarFadingEnabled(true); URL.setHorizontalScrollBarEnabled(false); URL.getSettings().setJavaScriptEnabled(true); URL.getSettings().setUserAgentString("My URL"); URL.loadUrl("//the first url goes here");

然后您需要将与此类似的布局构建为xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <RelativeLayout <WebView android:id="@+id/ticketline" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/Title" android:layout_marginTop="5dip" /> </RelativeLayout> </LinearLayout>

希望这会有所帮助:)

        webview.loadUrl("http://route.izooto.com/?id=1563543&client=41882&rid=4188273230385&frwd=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbT91dG1fc291cmNlPWl6b290byZ1dG1fbWVkaXVtPXB1c2hfbm90aWZpY2F0aW9ucyZ1dG1fY2FtcGFpZ249VGVzdCBpWm9vdG8gTFAmdXRtX2NvbnRlbnQ9JnV0bV90ZXJtPQ==&bkey=f9_DIVuweYA:APA91bFE9x7PN6J5Oy67NypwlT8ZT3Qgz0VSYtCT4_DH5v4l7mCsY7q3aqSrOh6mCcWKIjz4aRiOWQ8ap85r85vHiTh3Mc8n4MiHSnbMXUKGB_5HkDjiBCQg5a7IQifvrakl7bIXF_oA");
       WebViewClient webClient = new WebViewClient() {

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return super.shouldOverrideUrlLoading(view, url);
            }

            @Override
            public void onFormResubmission(WebView view, Message dontResend,
                                           Message resend) {
                // TODO Auto-generated method stub
                super.onFormResubmission(view, dontResend, resend);
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                super.onLoadResource(view, url);
                if (url.contains("purchasehistory.html")) {
                   // mURLNavigation.onURLNavigation(3);
                }
            }

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

        WebSettings webSettings = webview.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webview.setWebViewClient(webClient);

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.