你的位置:首页 > 操作系统

[操作系统]Android客户端和服务器端数据交互


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

        一、服务器端:

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

[java] view plain copy 在CODE上查看代码片派生到我的代码片

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

        代码2:修改名为“web.[html] view plain copy 在CODE上查看代码片派生到我的代码片

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

        二、Android手机客户端:

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

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

[java] view plain copy

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

        代码3:添加名为“android_client.[html] view plain copy 在CODE上查看代码片派生到我的代码片

  1. <RelativeLayout "http://schemas.android.com/apk/res/android"  
  2.     "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.   
  11.    <Button  
  12.        android:id="@+id/send_button"  
  13.        android:layout_width="wrap_content"  
  14.        android:layout_height="wrap_content"  
  15.        android:layout_centerHorizontal="true"  
  16.        android:layout_centerVertical="true"  
  17.        android:text="@string/hello_server" />  
  18.   
  19. </RelativeLayout> 

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




海岛旅游行程深圳到海岛旅游深圳去海岛旅游报价办理海岛旅游签证跟团海岛旅游需要多少钱2015春节蓝田瑶族风情园有哪些好玩的?龙门蓝田瑶族风情园春节有什么活动? 2015春节台山下川岛航班安排?台山上川岛春节开门吗? 2015牛鱼嘴禾雀花开了吗?清远牛鱼嘴禾雀花盛花期是几月? 珠海一棵树农庄野战怎么收费?一棵树农庄能玩真人cs吗? 锦绣中华万圣节时间?深圳锦绣中华万圣节活动安排? 小长假不虚度 来辽宁感受“蒸爷”气息 深圳锦绣中华万圣节刺激吗?锦绣中华万圣节门票价格? 秋天这样找虐才够味(组图) 大学城广东科学馆团购价格?大学城广东科学中心门票怎么预订? 大学城广东科学馆地址?大学城广东科学中心乘车路线? DFS集团T广场于铜锣湾希慎广场盛大开幕 宝墨园和南粤苑一天时间能逛完吗?宝墨园南粤苑套票可以预订吗? 深圳西丽动物园门票团购优惠吗?西丽动物园优惠票多少钱? 风云变幻的中国华北"66号公路" 广西百色澄碧湖水库要门票吗?澄碧湖门票多少钱? 深圳西丽动物园门票多少钱?西丽动物园门票是通票吗? Q65110A7848 Datasheet Q65110A7848 Datasheet Q65110A7849 Datasheet Q65110A7849 Datasheet Q65110A7850 Datasheet Q65110A7850 Datasheet 博鳌在哪 博鳌在哪 博鳌在哪 清远老虎谷漂流 清远老虎谷漂流 清远老虎谷漂流 深圳赤湾天后宫 深圳赤湾天后宫 深圳赤湾天后宫