android 自动表单提交数据,在Android应用中使用POST数据提交表单

我一直在网上寻找一种方法来做这个约一个星期了,我似乎无法弄明白.

我正在尝试实施一个应用程序,我的大学可以使用该应用程序,让用户轻松登录校园内的各种服务.它目前的工作方式是进入在线门户,选择他们想要的服务,填写用户名和密码,然后点击登录.表单数据通过post(它包含几个隐藏的值以及用户名和pwd)发送到相应的登录脚本,然后登录它们并加载服务.

我一直试图以两种方式解决问题.我首先尝试了一个WebView,但似乎并不想支持通常使这个表单工作的所有html.我得到了我需要的所有元素,用户和密码的字段以及登录按钮,但点击按钮不会做任何事情.我想知道我是否需要为它添加一个onclick处理程序,但是我无法看到如何在webview的html中实现该按钮而不使用单独的android元素.

另一种可能是使用xml小部件以一个漂亮的相对布局创建表单,这似乎加载更快,并在Android屏幕上看起来更好.我使用EditText字段作为输入,使用服务选择的微调框小部件和登录的按钮小部件.我知道如何分别为按钮和微调器创建onclick和项目选择处理程序,但我无法弄清楚如何通过POST发送该数据,然后启动浏览器.我可以使用操作URL进行操作,但无法获取POST数据.

所以这就是我现在所拥有的……

HttpParams params = new BasicHttpParams();

HttpClient client = new DefaultHttpClient(params);

HttpPost post = new HttpPost(action);

String endResult = null;

try

{

post.setEntity(new UrlEncodedFormEntity(myList));

}

catch (UnsupportedEncodingException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

try

{

String response = client.execute(post, new BasicResponseHandler());

endResult = response;

}

catch (ClientProtocolException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

所以现在我的问题是…如何获取endResult屏幕,该屏幕应该是我登录服务后返回的页面,并在浏览器中显示?

解决方法:

他们只使用内置浏览器有什么问题?您还可以使用UrlEncodedFormEntity和HttpClient提交表单.

HttpParams params = new DefaultHttpParams(); // setup whatever params you what

HttpClient client = new DefaultHttpClient(params);

HttpPost post = new HttpPost("someurl");

post.setEntity(new UrlEncodedFormEntity()); // with list of key-value pairs

client.execute(post, new ResponseHandler(){}); // implement ResponseHandler to handle response correctly.

好的,并且在字符串中有响应之后.自页面起的响应将以html格式显示.您需要使用WebView来显示html. WebView有一个方法loadData(),它接受一串html并显示它.

标签:post,android,android-intent,forms

来源: https://codeday.me/bug/20190621/1258230.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值