Как мне написать веб-просмотр для автоматического входа в мою учетную запись Yahoo?

Я пишу тестовое приложение для веб-просмотра, в котором я собираюсь открыть свою почту Yahoo, как только я запускаю представление приложения. Это будет веб-просмотр, где я хочу жестко указать свое имя пользователя и пароль. Я знаю, что Yahoo использует метод get вместо post. Есть ли способ, которым я могу достичь этого? Вот мой код до сих пор:

Webview webview = (WebView) getView().findViewById(R.id.mywebview);
webview.setBackgroundColor(0);
            webview.getSettings().setJavaScriptEnabled(true);

            webview.setWebViewClient(new webClient());
            String url = "https://www.yahoomail.com";
            webview.loadUrl(url);

private class webClient extends WebViewClient {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            view.setVisibility(View.VISIBLE);

        }
        @Override
        public void onPageFinished(WebView view, String url) {

            final Animation fade = new AlphaAnimation(0.0f, 1.0f);
            fade.setDuration(200);
            view.startAnimation(fade);

            view.setVisibility(View.VISIBLE);

        }
        public void animate(final WebView view) {
            final Animation anim = AnimationUtils.loadAnimation(getActivity(),
                    R.anim.slide_in_from_left);
            view.startAnimation(anim);
        }
        @Override
        public void onReceivedError( WebView view, int errorCode, String description, String failingUrl ) {
            Toast.makeText(view.getContext(), "Authentication Error", Toast.LENGTH_LONG).show();
            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.setCookie("yahooemail@yahoo.com", "yahoopass");
            super.onReceivedError(view, errorCode, description, failingUrl);
        }

        @Override
        public void onLoadResource( WebView view, String url ){

        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            return super.shouldOverrideUrlLoading(view, url);

        }

        @Override
        public void onReceivedHttpAuthRequest( WebView view, final HttpAuthHandler handler, final String host, final String realm ){

            handler.proceed("yahooemail@yahoo.com", "yahoopass");

        }

    }

1 ответ

http://developer.android.com/reference/android/webkit/WebView.html

loadUrl (строковый URL)
Загружает указанный URL.

postUrl (строковый URL, байт [] postData)
Загружает URL с postData, используя метод "POST" в этот WebView.

Поэтому вместо использования:

String url = "https://www.yahoomail.com";
webview.loadUrl(url);

использовать:

String url = "http://example.com/somepage.php";
String postData = "postvar=value&postvar2=value2";
webView.postUrl(url, EncodingUtils.getBytes(postData, "base64"));

Вы можете извлечь переменные, необходимые для Yahoo, со страницы входа в систему.