• 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.xml”的文件

    [html] view plain copy 在CODE上查看代码片派生到我的代码片
    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.   
    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.xml”的文件

    [html] view plain copy 在CODE上查看代码片派生到我的代码片
    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.   
    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客户端和服务器端数据交互是最常用的大笑大笑大笑

  • 相关阅读:
    npm ci命令比npm installer命令快2至10倍
    Liferay 7.1发布啦
    2016/07/05 zend optimizer
    2016/06/16 phpexcel
    2016/06/13 phpexcel 未完待续
    2016/06/10 日历插件 Datepicker
    2016/06/09 ThinkPHP3.2.3使用分页
    2016/06/02 网摘记录 svn 服务器端 客户端 安装使用
    2016/05/27 php上传文件常见问题总结
    2016/05/25 抽象类与API(接口)差别
  • 原文地址:https://www.cnblogs.com/Seachal/p/5935913.html
Copyright © 2020-2023  润新知