网上有很多例子来演示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. 【原创经验分享】JQuery(Ajax)调用WCF服务

    最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...

  2. 安卓Design包下的TextInputLayout和FloatingActionButton的简单使用

    终于介绍到Design包的最后的东西了. 也很简单,一个是TextInputLayout. TextInputLayout作为一个父容器,包含一个新的EditText,可以给EditText添加意想不 ...

  3. c#编程基础之字符串基础

    1.C#中单个的字符串用单引号包含就是char类型,('a'),单引号中放且只能放一个字符 2.单个字符也可以表示为字符串,还可以有长度为0的字符串. 3.使用s.Length属性来获得字符串中的字符 ...

  4. PHP练习题

    在PHP中,定义一个常量define(‘HoverTree’,’何问起’,true),以下语句正确输出“何问起”的是( ).   A.echo hovertree;B.echo Hover Tree; ...

  5. 使用PublishSetting快速在Powershell中登录Azure

    使用Powershell 来管理Azure资源实在是一大快事. 在使用power script之前, 需要先连接到Azure上,其中使用导入PublishSetting文件是最方便的方法. 步骤: 1 ...

  6. svn+teamcity+YouTrack+Upsource搭建—写给明天工作室的小伙伴

    首先解释下概念: SVN:Subversion的简称,版本控制系统.采用集中式管理(本地只保留服务器仓储的副本,想要把代码交到服务器或者看提交记录.差异对比就必须得有网络连接) Teamcity:可持 ...

  7. 【C#进阶系列】27 I/O限制的异步操作

    上一章讲到了用线程池,任务,并行类的函数,PLINQ等各种方式进行基于线程池的计算限制异步操作. 而本章讲的是如何异步执行I/O限制操作,允许将任务交给硬件设备来处理,期间完全不占用线程和CPU资源. ...

  8. android

    配置Activity 的启动模式: 在 AndroidManifest.xml 中配置: <activity android:name=".MainActivity" and ...

  9. python学习笔记(基础二:注释、用户输入、格式化输出)

    注释 单行:# 多行:上下各用3个连续单引号或双引号 3个引号除了多行注释,还可以打印多行 举例: msg = ''' name = "Alex Li" name2 = name ...

  10. viewport理解

    viewport预备知识 dpr === dppx dpr:device pixel ratio 设备像素比 dppx:Number of dots per px unit 每像素有多少点 . 1dp ...