Android 如何从web表单截获http POST数据
我有一个网页(在浏览器中显示,而不是网络视图),我想将一些数据(例如使用http POST)传递给一个普通的android应用程序 我只需要启动应用程序并提供数据。我知道该应用程序可以通过注册一个意向过滤器来启动,但我对数据传递部分感到迷茫 没有必要让URL是真实的,伪造的URL也可以 这可以在BlackBerry中使用HTTP过滤器完成。在安卓系统中有没有同样的方法Android 如何从web表单截获http POST数据,android,http,browser,intercept,Android,Http,Browser,Intercept,我有一个网页(在浏览器中显示,而不是网络视图),我想将一些数据(例如使用http POST)传递给一个普通的android应用程序 我只需要启动应用程序并提供数据。我知道该应用程序可以通过注册一个意向过滤器来启动,但我对数据传递部分感到迷茫 没有必要让URL是真实的,伪造的URL也可以 这可以在BlackBerry中使用HTTP过滤器完成。在安卓系统中有没有同样的方法 提前感谢。我将研究的方法是在应用程序中实现一个非常简单的HTTP服务器服务。为您的确切目的编写一个小型web服务器非常简单:侦听
提前感谢。我将研究的方法是在应用程序中实现一个非常简单的HTTP服务器服务。为您的确切目的编写一个小型web服务器非常简单:侦听TCP端口80,接受传入连接,然后继续从套接字读取,直到看到
\r\n\r\n
跳过标题,然后读取POST数据。您的网页可能会通过“localhost”访问它。我不知道这种方法是否存在任何主要障碍,但在进行快速搜索时,我发现已经有小型Android web服务器可用,因此从技术上讲这似乎是可能的。这是我的两分钱:
虽然不是真正的拦截,但这种方法使用传统的意图过滤机制完成任务
例如:
String encodedURL = getIntent().getData().getPathSegments().get(0); //Returns http%3A%2F%2Factualurl.com
String targetURL = Html.fromHtml(encodedURL); //Returns http://actualurl.com
//Now do the GET and fetch the data.
在网页中放置以下链接:
<a href="my.special.scheme://xyz.com/data1/data2">
这里有一些问题,@user370305谢谢,我都读过了。但是,正如我在问题中试图解释的那样,我已经知道如何启动应用程序,但不知道如何传递数据。检查我的blogspot
html和活动链接
,它包含有关传递数据的信息(使用GET):@Sherif+1显示如何使用getQueryParameter
。哼哼,但这项服务很可能会被操作系统停止。
Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "xyz.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "data1"
String second = params.get(1); // "data2"