网上有很多例子来演示Android客户端和服务器端数据如何实现交互不过这些例子大多比较繁杂,对于初学者来说这是不利的,现在介绍几种代码简单、逻辑清晰的交互例子,本篇博客介绍第二种:

一、服务器端:

代码1:添加名为“AndroidServerServlet.java”的文件

package com.ghj.packageofservlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class AndroidServerServlet extends HttpServlet {private static final long serialVersionUID = 6792396567928634227L;public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/plain; charset=UTF-8");request.setCharacterEncoding("UTF-8");System.err.println(request.getParameter("clientData"));PrintWriter printWriter = response.getWriter();printWriter.print("您好Android客户端!");printWriter.flush();printWriter.close();}
}

代码2:修改名为“web.xml”的文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>AndroidServerServlet</servlet-name><servlet-class>com.ghj.packageofservlet.AndroidServerServlet</servlet-class></servlet><servlet-mapping><servlet-name>AndroidServerServlet</servlet-name><url-pattern>/AndroidServerServlet</url-pattern></servlet-mapping>
</web-app>

二、Android手机客户端:

代码1:添加名为“AndroidClientActivity.java”的文件

package com.example.androidclient;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;public class AndroidClientActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.android_client);Button sendButton = (Button) findViewById(R.id.send_button);sendButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {new Thread(new Runnable(){@Overridepublic void run() {HttpPost httpRequest = new HttpPost("http://172.16.99.207:8080/AndroidServer/AndroidServerServlet");List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("clientData", "您好服务器端!"));try {Message message = new Message();Bundle bundle = new Bundle();httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));//设置请求参数项HttpClient httpClient = new DefaultHttpClient();HttpResponse httpResponse = httpClient.execute(httpRequest);//执行请求返回响应if(httpResponse.getStatusLine().getStatusCode() == 200){//判断是否请求成功bundle.putString("msg", EntityUtils.toString(httpResponse.getEntity()));}else{bundle.putString("msg", "没有获取到Android服务器端的响应!");}message.setData(bundle);handler.sendMessage(message);} catch (ClientProtocolException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}).start();}});}private Handler handler = new Handler(){@Overridepublic void handleMessage(Message message) {super.handleMessage(message);Bundle bundle = message.getData();String msg = bundle.getString("msg");Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();}};
}

代码2:添加名为“android_client.xml”的文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><Buttonandroid:id="@+id/send_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:text="@string/hello_server" /></RelativeLayout>

0分下载该Demo

Android客户端和服务器端数据交互的第二种方法相关推荐

  1. android客户端和服务端交互,谈谈android客户端和网站数据交互的实现

    android客户端一般不直接访问网站数据库,而是像浏览器一样发送get或者post请求,然后网站返回客户端能理解的数据格式,客户端解析这些数据,显示在界面上,常用的数据格式是xml和json. 可以 ...

  2. C#实现Winform间的数据交互的三种方法

    使用.NET编写winform程序,比较常见的一种情况就是如何实现Form间的数据交互,下面就简单总结一下常见的几种数据交互方式:     (1)修改子窗体的构造函数:简单地说就是通过修改子窗体For ...

  3. Android 客户端与服务器端进行数据交互(一、登录服务器端)

    概要 安卓APP要实现很多功能(比如登录注册.发表评论等)时都必须要使用到网络数据交互.所以在学习了这部分内容后,就将其以最常见的登录过程为例整理出来,也方便跟我一样的新手能迅速学习上手. 预期效果图 ...

  4. 一个简单的Android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码代码如下: /** ...

  5. Android客户端与服务器端socket通讯

    Android客户端与服务器端的Socket通讯: socket通讯依赖IP地址和端口号,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务. 服务器端代码: 实例化主类, ...

  6. websocket服务端和html客户端进行二进制数据交互

    一.概念和理论理解 1.HTTP HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接. 无状态:每次连接只处理一个请求,请求结束后断开连接. 无连接:对于事务处理没有 ...

  7. Android客户端请求服务器端的详细解释(附源代码)

    Android客户端请求服务器端的详细解释 1. Android客户端与服务器端通信方式: Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和po ...

  8. (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式...

    http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...

  9. web实现数据交互的几种常见方式

    前言 在当今社会,作为一名前端程序猿,并不是一昧的去制作静态页面就可以满足滴:你说你会制作网页,好吧,只能说你算是一个前端程序猿.但这是你作为一个程序猿最基本的能力,并不会为你进行加分: 我们都明白, ...

  10. 一种客户端即时通信数据的加密和解密方法

    一种客户端即时通信数据的加密和解密方法  摘要 本发明适用于即时通信领域,提供了一种客户端即时通信数据的加密和解密方法,所述方法包括以下步骤:A.客户端加密本地保存的即时通信数据,并将数据加密密钥上传 ...

最新文章

  1. yolov5 ncnn
  2. Oracle逻辑空间管理
  3. cocoaPod集成9大环境以及报错项目问题
  4. 咋一看DWoo 比 Smarty要好
  5. 调用$.ajax不成功,jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法...
  6. Python流程控制的 for、 while、循环和嵌套词汇continue、break、range
  7. mysql-mmm官方安装指南翻译
  8. 推荐的MyBatis传参方式List、数组等
  9. 使用DISM++精简windows系统
  10. 电商直播还有什么新花样?
  11. 隐匿函数,二分法 冒泡排序
  12. 【小程序源码】经典语录大全多种分类语录
  13. 【已解决】mysql报错error Found option without preceding group in config file Dmysql-5.7.25-win32
  14. Chromium DevTools-frontend 源码构建流程-Windows系统
  15. 翻译程序和解释程序的区别
  16. 能让3D打印自动支撑和减少压力积累的云软件
  17. Vue CLI 3结合Lerna进行UI框架设计
  18. 高德地图实时定位显示图标和名字
  19. CRI HITFM 88.7的网络电台
  20. bp暴力破解(转载)

热门文章

  1. 二十岁出头,你一无所有,但你却拥有一切
  2. asp.net生成随机数或字母验证码代码
  3. SQL server2005安装问题
  4. 西安高铁“洋班组” 助力新春运
  5. Hadoop中maptask数量的决定因素
  6. vSphere 5.5 使用Web Client打开控制台窗口显示连接超时
  7. 65. 雇员管理系统(2)
  8. 全国计算机应用考试试卷,全国信息化计算机应用技术水平教育考试试卷
  9. Spring MVC JSON自己定义类型转换
  10. [原创]MOF提权下载者代码