Android客户端和服务器端数据交互

网上有很多例子来演示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客户端和服务器端数据交互Android客户端和服务器端数据交互Android客户端和服务器端数据交互

上一篇:js 数组赋值问题 :值传递还是引用?


下一篇:java多线程学习-同步之线程通信