1

I have a WebView where I'm trying to get the post response back as a string. I have successfully implemented this in Swift/iOS, but I fail to do this in Jave/Android.

In Swift/iOS I use shouldStartLoadWithRequest. Where I can get request.HTTPBody.

Grabbing POST data from UIWebView

Here is my code: But when I implement this I can't navigate in my WebView.

 aWebView = (WebView) findViewById(R.id.webView);

    // Enable Javascript
    WebSettings webSettings = aWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    // Stop local links and redirects from opening in browser instead of WebView
    aWebView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {

            //SHOW LOADING IF IT ISNT ALREADY VISIBLE
            Log.d(LOGTAG, url);
        }


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

            if(flag)
            {
                GetUserLoginTask GetUserLogin = new GetUserLoginTask(url);
                GetUserLogin.execute();
                return true;

            }
            return false;

        }

        @Override
        public void onPageFinished (WebView view, String url) {
            flag = true;

        }



    });

    aWebView.loadUrl(mainUrl);

Then I use and asynctask for network communication:

public class GetUserLoginTask extends AsyncTask<Void, Void, String> {

    private final String mURL;


    GetUserLoginTask(String url) {
        mURL = url;
    }

    @Override
    protected String doInBackground(Void... params) {
        try {
            URL aURL = new URL(mURL);
            URLConnection conn = aURL.openConnection();
            conn.connect();
            InputStream is = conn.getInputStream();

            BufferedReader in = new BufferedReader(new InputStreamReader(is));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();

            String s = response.toString();

            Log.d(LOGTAG, s);

            return s;

        } catch (MalformedURLException e) {
            e.printStackTrace();
            return "";
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }
    }

    @Override
    protected void onPostExecute(String g) {
        Log.d("elaegen", g);

    }
}
Community
  • 1
  • 1
Loc Dai Le
  • 1,661
  • 4
  • 35
  • 70

0 Answers0