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

一、服务器端:

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

  1. package com.ghj.packageofservlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class AndroidServerServlet extends HttpServlet {
  9. private static final long serialVersionUID = 6792396567928634227L;
  10. public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
  11. response.setContentType("text/plain; charset=UTF-8");
  12. request.setCharacterEncoding("UTF-8");
  13. System.err.println(request.getParameter("clientData"));
  14. PrintWriter printWriter = response.getWriter();
  15. printWriter.print("您好Android客户端!");
  16. printWriter.flush();
  17. printWriter.close();
  18. }
  19. }

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <servlet>
  7. <servlet-name>AndroidServerServlet</servlet-name>
  8. <servlet-class>com.ghj.packageofservlet.AndroidServerServlet</servlet-class>
  9. </servlet>
  10. <servlet-mapping>
  11. <servlet-name>AndroidServerServlet</servlet-name>
  12. <url-pattern>/AndroidServerServlet</url-pattern>
  13. </servlet-mapping>
  14. </web-app>

二、Android手机客户端:

代码1:下载名为android-async-http-1.4.6.jar的jar文件,下载地址:http://download.csdn.net/download/wangshuxuncom/8116169

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

  1. package com.example.androidclient;
  2. import org.apache.http.Header;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. import android.widget.Toast;
  9. import com.loopj.android.http.AsyncHttpClient;
  10. import com.loopj.android.http.AsyncHttpResponseHandler;
  11. import com.loopj.android.http.RequestParams;
  12. public class AndroidClientActivity extends Activity {
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.android_client);
  17. Button sendButton = (Button) findViewById(R.id.send_button);
  18. sendButton.setOnClickListener(new OnClickListener(){
  19. @Override
  20. public void onClick(View v) {
  21. RequestParams requestParams = new RequestParams();
  22. requestParams.add("clientData", "您好服务器端!");
  23. new AsyncHttpClient().post("http://172.16.99.207:8080/AndroidServer/AndroidServerServlet", requestParams, new AsyncHttpResponseHandler() {
  24. @Override
  25. public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
  26. if(statusCode == 200){
  27. Toast.makeText(AndroidClientActivity.this, new String(responseBody), Toast.LENGTH_LONG).show();
  28. }
  29. }
  30. @Override
  31. public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
  32. Toast.makeText(AndroidClientActivity.this, "没有获取到Android服务器端的响应!", Toast.LENGTH_LONG).show();
  33. }
  34. });
  35. }
  36. });
  37. }
  38. }

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

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingBottom="@dimen/activity_vertical_margin"
  6. android:paddingLeft="@dimen/activity_horizontal_margin"
  7. android:paddingRight="@dimen/activity_horizontal_margin"
  8. android:paddingTop="@dimen/activity_vertical_margin"
  9. tools:context=".MainActivity" >
  10. <Button
  11. android:id="@+id/send_button"
  12. android:layout_width="wrap_content"
  13. android:layout_height="wrap_content"
  14. android:layout_centerHorizontal="true"
  15. android:layout_centerVertical="true"
  16. android:text="@string/hello_server" />
  17. </RelativeLayout>

说明:使用android-async-http-1.4.6.jar jar这种形式实现Android客户端和服务器端数据交互是最常用的。

Android客户端和服务器端数据交互的更多相关文章

  1. android客户端从服务器端获取json数据并解析的实现代码

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

  2. (转)android客户端从服务器端获取json数据并解析的实现代码

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

  3. android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】

    android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...

  4. ajax+客户端与服务器端的交互

    一. AJAX 原生JS var xhr=new XMLHttpRequest(); xhr.open("GET","[请求地址]",false); xhr.o ...

  5. Android客户端与服务端交互之登陆示例

    Android客户端与服务端交互之登陆示例 今天了解了一下android客户端与服务端是怎样交互的,发现其实跟web有点类似吧,然后网上找了大神的登陆示例,是基于IntentService的 1.后台 ...

  6. Android与服务器端数据交互(http协议整合struts2+android)

    在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有 一:基于Http协议获取数据方法 ...

  7. android客户端从服务器端获取json数据并解析的实现代码(重要)

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...

  8. Android客户端向服务器端发送数据的流程(1)

    原理: android客户端通过使用org.apache.http.impl.client.DefaultHttpClient类来发送数据; 方法介绍: HttpClient是android中提供的一 ...

  9. 使用webservice实现App与服务器端数据交互

    What? webservice曾经认为是解决异构系统间整合的最佳解决方案,不依赖于第三方任何系统的支持(不需要部署RDBMS服务器),大家只需要按照官方的规范,即可完成相互之间的数据交互. Why? ...

随机推荐

  1. JavaScript - reduce方法,reduceRight方法 (Array)

    JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...

  2. 搞定.NET MVC IOC控制反转,依赖注入

    一直听说IOC,但是一直没接触过,只看例子好像很高达上的样子,今天抽了点时间实现了下,当然也是借助博客园里面很多前辈的文章来搞的!现在做个笔记,防止自己以后忘记! 1.首先创建MVC项目 2.然后新建 ...

  3. 常用原生JS方法总结(兼容性写法)

    经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...

  4. 【分布式】Zookeeper请求处理

    一.前言 在前面学习了Zookeeper中服务器的三种角色及其之间的通信,接着学习对于客户端的一次请求,Zookeeper是如何进行处理的. 二.请求处理 2.1 会话创建请求 Zookeeper服务 ...

  5. JavaScript: 零基础轻松学闭包

    本文面向初学者,大神轻喷. 闭包是什么? 初学javascript的人,都会接触到一个东西叫做闭包,听起来感觉很高大上的.网上也有各种五花八门的解释,其实我个人感觉,没必要用太理论化的观念来看待闭包. ...

  6. github常见问题【转自百度知道】

    1 git config --global user.name "Your Real Name" 2 git config --global user.email you@emai ...

  7. Eclipse复制时的中文乱码问题

    点击"Project"--"Properties"--"Resource",在其中改变"Text file encoding&qu ...

  8. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...

  9. 大朋展翅 html5上传图片(三)一解决部分手机拍相册批量上传图片转向问题

    在经过前面的改进之后本来以为已经没有问题了,但经过我们神通广大的测试的测试,发现相册中的图片在上传时也会发生转向问题.既然前面都解决了拍照转向的问题,那么相册中图片的上传也容易解决.修改一下需要旋转图 ...

  10. iOS获取网络图片大小

    在iOS开发过程中经常需要通过网络请求加载图片,有时,需要在创建UIImageView或UIButton来显示图片之前需要提前知道图片的尺寸,根据图片尺寸创建对应大小的控件.但是对于网络图片来说,要想 ...