How can I open Android browser with specified POST parameters?
Use a webview:
WebView webview = new WebView(this);setContentView(webview);byte[] post = EncodingUtils.getBytes("postvariable=value&nextvar=value2", "BASE64");webview.postUrl("http://www.geenie.nl/AnHeli/mobile/ranking/demo/index.php", post);
Intents sent to the browser can contain more than just a URL. In older versions of android it was possible to package extra POST data in the intent, in newer versions that capability is gone but one can send extra header data for a GET (which can be just about anything representable as a string) in the intent delivered to the browser.
try{ String finalUrl = "javascript:" + "var to = 'http://the_link_you_want_to_open';" + "var p = {param1:'"+your_param+"',param2:'"+your_param+"'};" + "var myForm = document.createElement('form');" + "myForm.method='post' ;" + "myForm.action = to;" + "for (var k in p) {" + "var myInput = document.createElement('input') ;" + "myInput.setAttribute('type', 'text');" + "myInput.setAttribute('name', k) ;" + "myInput.setAttribute('value', p[k]);" + "myForm.appendChild(myInput) ;" + "}" + "document.body.appendChild(myForm) ;" + "myForm.submit() ;" + "document.body.removeChild(myForm) ;"; Uri uriUrl = Uri.parse(finalUrl); Intent browserIntent = new Intent(Intent.ACTION_VIEW); PackageManager packageManager = this.getPackageManager(); browserIntent.setData(uriUrl); List<ResolveInfo> list = packageManager.queryIntentActivities(browserIntent, 0); for (ResolveInfo resolveInfo : list) { String activityName = resolveInfo.activityInfo.name; if (activityName.contains("BrowserActivity")) { browserIntent = packageManager.getLaunchIntentForPackage(resolveInfo.activityInfo.packageName); ComponentName comp = new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); browserIntent.setAction(Intent.ACTION_VIEW); browserIntent.addCategory(Intent.CATEGORY_BROWSABLE); browserIntent.setComponent(comp); browserIntent.setData(uriUrl); } } this.startActivity(browserIntent); }catch (Exception e){ e.printStackTrace(); txtHeader.setText(e.toString()); }