Black Magic
Black Magic

Reputation: 2766

WebView not posting/loading correctly

I have this piece of WebView code which should login to a website and then load a certain page of that website.

webView = (WebView) findViewById(R.id.recording_web_view);
Bundle b = getIntent().getExtras();
String filename = b.getString("filename");
SettingsManager setman = SettingsManager.getInstance(getBaseContext());

//Login to webinterface before we can watch the recording
String postData = "username=" + setman.getUserName() + "&password=" + setman.getPassword();

//This is the section of code that fixes redirects to external apps
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        return false;
    }
});
//Post login to get session

webView.postUrl("http://" + setman.getIp() + "/login", EncodingUtils.getBytes(postData, "BASE64"));
//Load actual recording
webView.loadUrl("http://" + setman.getIp() + "/movies/" + filename);

And when I run this I just get the login page, and the server says it received no postdata. However, when I remove the loadUrl line it does receive the login data and load the page after the login.

Can anyone tell me what I am doing wrong? Thanks

Upvotes: 0

Views: 96

Answers (2)

Tapa Save
Tapa Save

Reputation: 4857

Try use in WebViewClient:

  @Override
  public void onPageFinished( WebView view, String url)
   {
     view.loadUrl( "http://" + setman.getIp() + "/movies/" + filename);
   }

Also you can check error of request:

  @Override
  public void onReceivedError( WebView view, int errorCode, String description, String failingUrl)

Upvotes: 1

Amit kumar
Amit kumar

Reputation: 1605

Enable the the JavaScript

 webView.getSettings().setJavaScriptEnabled(
                                        true);

Upvotes: 0

Related Questions