安卓使用post提交数据并获得方服务端的响应

本文档提供了安卓如何使用post向服务端提交数据,并获得服务端的响应的方法,有服务端的详细代码,有客户端的详细代码,并且仔细说明的过程和代码的作用。希望对大家有很好的帮助在Android中,提供了标准Java接口URLConnection和Apache接口Client,为客户端编程提供了丰富的支持。在通信中使用最多的就是GET和POST了,GET请求可以获取静态页面,也可以把参数放在URL字符串的后面,传递给服务器。POST与GET的不同之处在于POST的参数不是放在URL字符串里面,而是放在请求数据中。本文将使用标准Java接口URLConnection,以一个实例演示如何使用POST方式向服务器提交数据,并将服务器的响应结果显示在Android客户端。1.服务器端的准备为了完成该实例,我们需要在服务器端做以下准备工作:(1)我们需要在MyEclipse中创建一个Web工程,用来模拟服务器端的Web服务,这里,我将该工程命名为了“my”。(2)修改该工程的“index.jsp”文件,添加两个输入框和一个提交按钮,作为该Web工程的显示页面。运行Tomcat,在浏览器中访问该Web工程,可以看到如图1所示的界面。图1Web工程的显示页面(3)在该Web工程中,创建一个继承自Servlet的LoginAction类,并实现其中的doPost()方法,用来响应图1所示页面的用户操作。具体实现如下:1publicvoiddoPost(ServletRequestrequest,ServletResponseresponse)2throwsServletException,IOException{34response.setContentType("text/html;charset=utf-8");5request.setCharacterEncoding("utf-8");6response.setCharacterEncoding("utf-8");7PrintWriterout=response.getWriter();89Stringusername=request.getParameter("username");10Stringpassword=request.getParameter("password");1112//判断用户名密码是否正确13if(username.equals("admin")password.equals("123")){14out.print("Loginsucceeded!");15}else{16out.print("Loginfailed!");17}1819out.flush();20out.close();21}由上述代码可以看出,当我们在图1所示的页面输入用户名“admin”,密码“123”时,点击提交按钮,会得到“Loginsucceeded!”的提示信息,如图2所示。若用户名、密码错误,则会得到“Loginfailed!”的提示信息。图2登录成功界面至此,服务器端的准备工作就全部完成了。2.客户端实现在Android客户端,我们需要完成的工作是:以POST方式发送用户名密码到上述服务器,并获得服务器的验证信息。我们分以下几个步骤来完成。2.1UI界面在Android工程中,我们需要完成一个简单的UI界面,用来完成用户名密码的输入、发送POST请求、显示服务器的验证结果,完成后的界面如图3所示。图3客户端UI界面在MainActivity中,我们需要获取两个EditText控件的输入,“提交”按键的监听,以及服务器验证结果的TextView内容显示。具体实现代码如下:1/*2*Function:点击事件响应3*Author:博客园-依旧淡然4*/5publicvoidonClick(Viewview){6switch(viegetId()){7caseR.id.button_submit:8Stringusername=mEditText_userName.getText().toString();9Stringpassword=mEditText_password.getText().toString();10Map<String,String>params=newHashMap<String,String>();11params.put("username",username);12params.put("password",password);13mTextView_result.setText(Utils.submitPostData(params,"utf-8"));14break;15}16}2.2发送POST请求到服务器可以看到上述代码中,我们调用了Utils类的静态方法submitPostData()完成了发送POST请求到服务器,并将该方法的返回值(服务器的响应结果)显示在了TextView控件中。在Utils类中,submitPostData()方法的具体实现如下:/**Function:发送Post请求到服务器*Param:params请求体内容,encode编码格式*Author:博客园-依旧淡然*/publicstaticStringsubmitPostData(Map<String,String>params,Stringencode){byte[]data=getRequestData(params,encode).toString().getBytes();//获得请求体try{URLConnectionURLConnection=(URLConnection)url.openConnection();URLConnection.setConnectTimeout(3000);//设置连接超时时间URLConnection.setDoInput(true);//...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?