`
gaojingsong
  • 浏览: 1195311 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Android系统之Web交换Demo】

阅读更多

一、系统介绍

Android系统发送请求到Web系统,Web系统可以是PHP语言、Python语言、java语言、ASP语言开发的,但是必须满足异构JVM的交换协议,可以是WebService请求、HTTP请求(普通表单请求和Restful格式的json请求)、Socket等请求。

 

二、系统源码

本例子以Android模拟登录发送数据到Web系统,Web系统采用JAVA语言中的Servlet

Android代码如下:

1)编写xml界面文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">

   

    <TextView  

   android:layout_width="fill_parent" 

   android:layout_height="wrap_content" 

   android:text="@string/username"/>

    <EditText

    android:id="@+id/userName"

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content"/>

    

    <TextView

   android:layout_width="fill_parent" 

   android:layout_height="wrap_content" 

   android:text="@string/password"/>

    

    <EditText

        android:id="@+id/passwd"

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content" />

   

   <Button

    android:id="@+id/ok"

    android:layout_width="fill_parent" 

   android:layout_height="wrap_content" 

   android:text="@string/ok"/> 

   

    <Button  

    android:layout_width="fill_parent" 

   android:layout_height="wrap_content" 

   android:text="@string/cacel"/> 

</LinearLayout>



 

2)编写JAVA注册事件

package cn.com.gaojs.demo;

 

import java.util.ArrayList;

import java.util.List;

 

import org.apache.http.NameValuePair;

import org.apache.http.message.BasicNameValuePair;

 

import cn.com.gaojs.service.impl.NetWorkTools;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

public class LoginActivity extends Activity {

public static final  String url ="http://192.168.1.100:8080/AndroidWeb/servlet/PDAServlet";

    

private Button btn;

private EditText userName;

private EditText passwd;

/** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        userName = (EditText) this.findViewById(R.id.userName);

        passwd = (EditText) this.findViewById(R.id.passwd);

        btn = (Button) this.findViewById(R.id.ok);

        btn.setOnClickListener(new LoginOnClickListener());

    }

    

    private class LoginOnClickListener implements OnClickListener{

@Override

public void onClick(View v) {

String userName1 = userName.getText().toString();

String passwd1 = passwd.getText().toString();

Toast.makeText(LoginActivity.this, "Hello"+userName1+passwd1, 10).show();

List<NameValuePair> params = new ArrayList<NameValuePair>();

params.add(new BasicNameValuePair("userName",userName1));

params.add(new BasicNameValuePair("passwd",passwd1));

params.add(new BasicNameValuePair("method","login"));

 

System.out.println("------begin call---NetWorkTools---");

NetWorkTools.test(params);

System.out.println("------end call---NetWorkTools---");

}

    }

}

3) 封装http请求

package cn.com.gaojs.service.impl;

 

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.List;

 

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.ParseException;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.protocol.HTTP;

import org.apache.http.util.EntityUtils;

 

import cn.com.gaojs.demo.LoginActivity;

 

public class NetWorkTools {

public static void test(List<NameValuePair> params){

try {

System.out.println(params);

HttpPost post = new HttpPost(LoginActivity.url);

//params.add(new BasicNameValuePair("",""));

post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

HttpResponse response = new DefaultHttpClient().execute(post);

String content  = EntityUtils.toString(response.getEntity()).trim();

System.out.println(content);

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}

}

 

Web端代码如下:

1)声明servlet

package cn.com.android.servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class PDAServlet extends HttpServlet {

 

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response); 

}

 

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String method = request.getParameter("method");

String userName = request.getParameter("userName");

String passwd = request.getParameter("passwd");

System.out.println(method +",userName="+userName+",passwd="+passwd);

 

//此处代码是处理登录逻辑的

if("login".equalsIgnoreCase(method)){

//doLogin(request, response);

}else if ("XXXX".equalsIgnoreCase(method)){

//doXXXX(request, response);

}else if ("YYY".equalsIgnoreCase(method)){

//doYYY(request, response);

}

 

}

 

2)Web.xml配置请求路径

<servlet>

    <servlet-name>PDAServlet</servlet-name>

    <servlet-class>cn.com.android.servlet.PDAServlet</servlet-class>

  </servlet>

 

  <servlet-mapping>

    <servlet-name>PDAServlet</servlet-name>

    <url-pattern>/servlet/PDAServlet</url-pattern>

  </servlet-mapping>

3)启动,验证



 

三、验证



 

  • 大小: 100 KB
  • 大小: 33.7 KB
  • 大小: 38.3 KB
0
0
分享到:
评论

相关推荐

    android应用和web简单交互DEMO

    综上所述,这个DEMO涵盖了Android应用与Web服务器交互的基本流程和技术点,包括网络请求、数据格式、权限管理、异步处理以及错误处理等,是学习和实践Android网络编程的好例子。通过深入研究和理解这个DEMO,开发者...

    Android中webservices的应用demo

    Web服务是一种通过互联网交换结构化信息的标准,允许不同系统间的互操作性。SOAP是一种基于XML的消息传递协议,用于在分布式环境中交换结构化的和类型化的信息。另一方面,REST(Representational State Transfer)...

    Android与html交互的demo

    这个“Android与html交互的demo”很可能是为了演示如何在Android应用中通过WebView组件与内嵌的HTML5页面进行数据交换和功能调用。下面将详细解释这一交互过程的关键技术点。 1. **WebView组件**: Android中的...

    Android图书管理系统精品demo系统.

    《Android图书管理系统精品demo系统》是一款专为Android平台设计的高效、便捷的图书管理软件示例,它将客户端和服务端完美结合,旨在帮助用户轻松实现图书的数字化管理和查阅。在这个系统中,用户不仅可以进行图书的...

    webrtc android Demo

    WebRTC(Web Real-Time Communication)...总的来说,"webrtc android Demo"是Android开发者学习和实践WebRTC技术的重要资源,通过深入研究和实践,开发者可以掌握如何在Android应用中实现高质量的实时音视频通信功能。

    Android 通过 Ksoap2 访问 Web Service Demo

    SOAP是一种基于XML的协议,用于在不同系统间交换结构化和类型化的信息。Ksoap2简化了这个过程,使Android开发者可以方便地调用Web Service接口。 2. **添加Ksoap2依赖** 在项目中使用Ksoap2,首先需要将`ksoap2-...

    WebServices服务端和客户端DEMO

    Web Services是一种基于网络的、平台无关的交互方式,它允许不同系统之间进行数据交换和功能调用。在本DEMO中,我们将深入探讨服务端和客户端的实现,以"SpringWebServiceClient"和"SpringWebServiceServer"为例。 ...

    android websocket demo

    - 针对Android系统的碎片化问题,需要确保所选WebSocket库兼容各种版本的Android系统。 - 考虑到网络环境的不稳定,应实现重连机制,当连接断开时尝试重新建立连接。 - 为了节省资源,可以在应用进入后台时关闭...

    Android应用源码之http 演示Demo_演示.zip

    本示例“Android应用源码之http 演示Demo”将帮助我们深入理解如何在Android中实现HTTP请求。下面,我们将详细讨论其中涉及的关键知识点。 1. **HTTP基础**:HTTP(超文本传输协议)是一种无状态的应用层协议,用于...

    webrtc demo (android)

    WebRTC(Web Real-Time Communication)是一个开放源代码项目,由Google发起并维护,它提供了浏览器和其他应用程序进行实时通信(RTC)的能力,包括音频、视频和数据共享。这个技术基于Internet工程任务组(IETF)的...

    Android-WebSocket-WebView_DEMO_websocket_androidwebview_

    6. 数据交换:通过JavaScriptInterface在Android和JavaScript之间交换数据,实现WebSocket通信的双向交互。 通过这个DEMO,开发者可以了解到如何在Android应用中集成WebSocket,以及如何在WebView加载的网页中利用...

    android客户端与后台服务器交互demo

    在这个项目中,Android客户端(AndroidCLient)负责用户界面的展示,以及与后台服务器进行数据交换。开发者可能使用了Android SDK中的HttpURLConnection或OkHttp库来发起网络请求,发送GET或POST请求来获取或提交...

    Webrtc 视频demo(Android)

    WebRTC(Web Real-Time Communication)是一项开放的网络技术,它允许网页浏览器进行实时通信(RTC),无需插件或额外的软件。在Android平台上,开发者可以利用WebRTC库创建丰富的音视频应用,包括视频会议、直播、...

    android-webrtc-demo,基于chrome64

    Android WebRTC Demo是基于Chrome 64版本的WebRTC实现,专门为Android平台设计的一个示例应用。WebRTC(Web Real-Time Communication)是一项开源项目,旨在为网页浏览器和其他各种应用程序提供实时通信(RTC)的...

    android web demo

    【Android Web Demo】是一个针对初学者设计的项目,旨在帮助他们入门Android平台上的Web开发。这个Demo涵盖了Android基础知识与Web技术的结合,让开发者能够理解如何在Android应用中嵌入和交互网页内容。 首先,...

    Android 访问WebServicedemo

    在Android开发中,访问Web Servicedemo涉及到的关键技术是客户端如何与远程服务器进行交互,以获取或发送数据。Web Service通常是一种基于HTTP协议的服务,它允许不同系统间的应用程序通过网络进行通信。本示例着重...

    android webrtc 视频demo

    Android WebRTC 视频通话Demo详解 WebRTC(Web Real-Time Communication)是Google推出的一种开源技术,用于实现浏览器之间的实时通信,包括音频、视频和数据共享。在Android平台上,WebRTC提供了一整套API,使得...

    Android客户端socket.io官方Demo完整可运行版

    Socket.IO 是一个实时应用框架,它为开发人员提供了一种简单的方式来实现在Web上进行双向通信,即服务器和客户端可以实时地、双向地交换数据。这个框架支持多种浏览器和平台,包括Android。在Android客户端使用...

    Android、ksoap2的WebService通信客户端demo

    它通过XML(可扩展标记语言)来交换数据,使得不同系统间的数据交换成为可能。SOAP(简单对象访问协议)是用于在Web上交换结构化和类型化的信息的协议,它基于HTTP协议,易于实现且可跨平台。 在Android中,ksoap2...

    android json的demo

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。在Android开发中,处理JSON数据是常见的任务,尤其是在与服务器进行数据交互时。本篇将详细介绍如何在Android...

Global site tag (gtag.js) - Google Analytics