gpt4 book ai didi

Android - 使用带有请求 header 的 url 打开浏览器

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:31:06 25 4
gpt4 key购买 nike

我有一个特定的要求,我必须从我的 Activity 中触发浏览器上的 url。我可以使用以下代码执行此操作:

String finalUrl = "http://localhost:7001/display/result.jsp?param=12345";
Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(finalUrl));

现在,我想通过将“param”作为请求 header 而不是 queryString 本身传递来调用 result.jsp。

有人可以请教吗?

提前致谢

编辑即使是请求正文中带有“param”的 POST 请求也应该没问题。

编辑 2接受的答案是针对 POST 请求的,而不是针对 header 的。

最佳答案

Android 浏览器支持“查看”javascript,例如以下代码可以启动浏览器应用程序以显示警告对话框:

    String finalUrl = "javascript:alert('hello')";
Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(finalUrl));
startActivity(browserIntent);

用javascript做post操作的一个常用技巧是用javascript创建一个表单然后提交。所以理论上像下面这样的代码应该可以工作(部分代码是从 this post 复制的):

    //String finalUrl = "http://localhost:7001/display/result.jsp?param=12345";
String finalUrl = "javascript:" +
"var to = 'http://localhost:7001/display/result.jsp';" +
"var p = {param:'12345',param2:'blablabla',param3:'whatever'};"+
"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) ;";
Intent browserIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse(finalUrl));
startActivity(browserIntent);

关于Android - 使用带有请求 header 的 url 打开浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com