`
chengyu2099
  • 浏览: 471062 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android apache HTTP demo 互联网访问

 
阅读更多
android 

用户名:________
密  码:________

submitButton,resetButton
(模拟器上访问地址填写
http://10.0.2.2:8080/test/servlet/androidServlet
不用写127.0.0.1或localhost
)
第二部:建立个web项目的一个servlet,接受android请求



package com.isoftstone.cry;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Entity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class LoginActivity extends Activity 
{
	private Button submit , reset ;
	private EditText username , password ;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.login_layout);
		//实例化组件
		username = (EditText)findViewById(R.id.loginName);
		password = (EditText)findViewById(R.id.loginPsw);
		
		submit = (Button)findViewById(R.id.submit);
		reset = (Button)findViewById(R.id.reset);
		
		//添加监听
		reset.setOnClickListener(resetListener);
		submit.setOnClickListener(submitListener);
	}
	
	//resetListener
	private OnClickListener resetListener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			username.setText("");
			password.setText("");
		}
	};
	//submitListener
	private OnClickListener submitListener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			String _username = username.getText().toString();
			String _password = password.getText().toString();
			Log.i("android servlet", _username+" "+_password);
			
			login(_username,_password);
		}
	};
	//showDialog
	private void showDialog(String msg)
	{
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(msg).setCancelable(false)
		.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
		AlertDialog alert = builder.create();
		alert.show();
	}
	//login method 
	private void login(String _username,String _password)
	{
		String strUrl = "http://10.0.2.2:8080/test/servlet/androidServlet";
		HttpPost request = new HttpPost(strUrl);
		List<NameValuePair> parameters = new ArrayList<NameValuePair>();
		parameters.add(new BasicNameValuePair("name", _username));
		parameters.add(new BasicNameValuePair("psw", _password));
		try {
			request.setEntity(new UrlEncodedFormEntity(parameters,HTTP.UTF_8));
			HttpResponse response = new DefaultHttpClient().execute(request);
			if(response.getStatusLine().getStatusCode()==200){
				String msg = EntityUtils.toString(response.getEntity());
				showDialog(msg);
			}
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >


            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/username" />



            <EditText
                android:id="@+id/loginName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPersonName" >

                <requestFocus />
            </EditText>

        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >


            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/password" />


            <EditText
                android:id="@+id/loginPsw"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPassword" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >


            <Button
                android:id="@+id/submit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="submit" />



            <Button
                android:id="@+id/reset"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="reset" />

        </TableRow>

    </TableLayout>

</LinearLayout>


添加访问权限
 <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
       <activity 
            android:name=".LoginActivity">
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


test项目
package com.isoftstone.cry;

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 androidServlet extends HttpServlet 
{
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		System.out.println("****************/servlet/androidServlet*************");
		
		String name = request.getParameter("name");
		String psw = request.getParameter("psw");
		
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		
		out.print("login success");
		out.flush();
		out.close();
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

分享到:
评论

相关推荐

    深入Android通过Apache HTTP访问HTTP资源示例代码

    本文将深入探讨如何使用Apache HTTP库在Android中访问HTTP资源,并提供相关的示例代码。 1. **引入Apache HTTP库** 在Android Studio中,由于Apache HTTP库默认不再包含在新项目中,你需要手动添加依赖。在`build....

    apachehttp demo

    Apache HTTP 是一个强大的开源Web服务器软件,被广泛用于互联网服务。在这个"apachehttp demo"中,我们将探讨如何利用Apache HTTP Client库进行资源下载操作。Apache HTTP Client是一个Java库,允许开发者构建应用...

    Apache POI for Android

    在Android开发中,Apache POI 提供了处理Excel文件的能力,使得开发者可以在Android设备上进行Excel的读写操作,无需依赖微软的软件环境。这个库简化了与Excel数据交互的过程,使得在移动应用中处理数据变得更加便捷...

    Android-AI聊天Demo

    《Android-AI聊天Demo详解》 在当今的移动应用领域,人工智能(AI)的应用日益广泛,尤其是在智能手机上,AI技术的融入使得用户交互体验更加智能化和个性化。本篇文章将深入探讨一个基于AIUI平台的Android人工智能...

    Android语音助手DEMO

    6. **权限管理**:Android系统需要特定权限才能访问麦克风和执行语音识别。在AndroidManifest.xml中添加`&lt;uses-permission&gt;`标签,例如`&lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt;`。 7....

    android apache-http流程分析

    android 下载工具包apache-http流程分析

    Apache HttpClient Demo

    这篇博客"Apache HttpClient Demo"可能详细介绍了如何使用这个库来发起HTTP请求,包括GET、POST以及其他HTTP方法。 在HttpClient中,首先需要创建一个HttpClient实例。这是基础的HTTP客户端,将负责发送请求并接收...

    Apache Mina 入门Demo

    在"Apache Mina 入门Demo"中,我们可以期待学习以下几个核心知识点: 1. **Mina架构**:Apache Mina的核心设计基于事件驱动和非阻塞I/O模型,这种模型特别适合处理大量并发连接。它将网络通信层抽象为一组服务,如...

    Android使用Apache的HttpClient访问微Web站点

    本实例描述了Android平台下使用Apache开源项目的HttpClient访问网络的示例。分别使用HttpClient下的两个子实现类,DefaultHttpClient和AndroidHttpClient分别进行演示。

    Android访问网络数据的几种方式Demo

    在Android应用开发中,访问网络数据是常见的需求,可以用于获取服务器上的数据、发送用户信息或者更新应用内容等。本文将详细讲解Android访问网络数据的几种常见方式,并通过一个名为"HttpDemo"的示例来具体阐述。 ...

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

    2. **HttpClient库**:在较旧的Android版本中,Android SDK提供了`Apache HttpClient`库来执行HTTP请求。不过,自API级别23起,该库被弃用。在本Demo中,如果使用了HttpClient,开发者可能需要处理兼容性问题,如在...

    Apache mina2学习笔记DEMO

    在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...

    org.apache.http.legacy.jar

    android 6.0(api 23) SDK上进行更改之后,不再提供org.apache.http.*(只保留几个类) Android studio解决办法: 下载 org.apache.http.legacy.jar这个jar包。放置到程序app--&gt;libs目录下,同步完成,就可以正常访问。...

    android httpclient demo

    首先,`Android HttpClient`是Apache HTTP Client的一个实现,适用于Android平台。它提供了丰富的API,用于构造和执行HTTP请求。然而,由于Android API Level 23之后不再支持HttpClient,开发者现在更多地转向使用...

    android pdf demo

    1. **Android PDF Viewer库**:Android原生SDK并不直接支持PDF的显示,因此开发者通常需要借助第三方库,如Android PDF Library、PDF.js、MuPDF或Apache PDFBox等。这些库提供了API,可以方便地在Android应用中加载...

    apache-felix-demo

    Apache Felix 演示(apache-felix-demo)通常是为了展示如何在 OSGi 环境中开发和运行应用程序,帮助开发者理解 Felix 的工作原理和使用方法。 在这个 demo 中,"order" 可能代表一个订单处理系统的实例,展示了...

    Android自定义excel表格demo下载

    可能使用的库有Apache POI(适用于服务器端),或者一些专门为Android设计的库,如`XlsxWriter`、`SimpleXlsxWriter`或者`EasyExcel`。在这个Demo中,可能会使用`EasyExcel`,因为它是轻量级且易于使用的库,能够...

    Android FTp文件下载demo

    本"Android FTP文件下载demo"旨在提供一个基础的实现示例,帮助开发者了解如何在Android应用中实现FTP文件下载功能。下面将详细介绍这个过程涉及的关键知识点。 1. **FTP协议**:FTP是一种用于在互联网上传输文件的...

    AndroidDemo,安卓摄像头监控例程

    总的来说,"AndroidDemo"项目涵盖了Android应用开发中的多个重要技术点:利用Android Camera API访问摄像头,通过JNI进行Java和C/C++的交互,依赖第三方SO库提升性能,以及使用CMake构建原生代码。这不仅对理解...

    Apache Dbutils JDBC 框架demo代码

    commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司...

Global site tag (gtag.js) - Google Analytics