主要实现通过客户端访问某一服务端,在服务端的服务器里可见请求内容,并且把内容返回到客户端上。具体实现看一下代码:

1、新建XML,定义button(点击),TextView(显示返回数据);

<span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
   >

    <TextView
        android:id="@+id/txtView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />
    <Button 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="buttonback"
        android:text="点击获取返回数据"/>
		
</LinearLayout>
</span>

2、新建Activty继承Activty

<span style="font-size:18px;">package com.example.com.scxh.httpservicehuoqu;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class HttpUrlConnectionAct extends Activity {
	private TextView mTextView;
	private Button button;
	//某一服服務端的地址(本地地址/服务端端口/服务端文件夹名(web)/web文件夹里自动生成的web.xml里的自定义名)
	private String httpUrl = "http://192.168.1.148:8080/ServletProject/firstservlet";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mTextView = (TextView) findViewById(R.id.txtView);

	}
//android按鈕点击监听
	public void buttonback(View v) {
		new AsyncTask<String, Void, String>() {
			@Override
			protected String doInBackground(String... params) {

				String content = getApacheData(httpUrl);
				Log.e("content", content + " ");
				return content;
			}

			@Override
			protected void onPostExecute(String result) {

				mTextView.setText(result);
			}

		}.execute(httpUrl);

	}

	/* 利用apache获取网络数据 */
	private String getApacheData(String url) {

		Log.e("aa", "sssss");
		StringBuffer sb = new StringBuffer();
		HttpClient httpClient = new DefaultHttpClient();
		
		//用post传数据
		HttpPost httpPost = new HttpPost(url);
		BasicNameValuePair username = new BasicNameValuePair("username",
				"general");
		BasicNameValuePair password = new BasicNameValuePair("password",
				"12315");
		BasicNameValuePair sex = new BasicNameValuePair("sex", "男");
		ArrayList<BasicNameValuePair> parPairs = new ArrayList<BasicNameValuePair>();
		parPairs.add(username);
		parPairs.add(password);
		parPairs.add(sex);

		Log.e("bb", "sssss");
		UrlEncodedFormEntity urlef = null;
		try {
			urlef = new UrlEncodedFormEntity(parPairs, "utf-8");
		} catch (UnsupportedEncodingException e1) {
			
			e1.printStackTrace();
		}
		httpPost.setEntity(urlef);
		HttpResponse httpResponse = null;
		try {
			httpResponse = httpClient.execute(httpPost);
		} catch (ClientProtocolException e1) {

			e1.printStackTrace();
		} catch (IOException e1) {

			e1.printStackTrace();
		}

		Log.e("cc", "sssss");

		try {

			HttpEntity httpEntity = httpResponse.getEntity();
			//用输入流接收
			InputStream is = httpEntity.getContent();

			int statusCode = httpResponse.getStatusLine().getStatusCode();
			Log.v("statusCode", statusCode + "");
			if (statusCode == 200) {
				// 创建包装流
				BufferedReader br = new BufferedReader(
						new InputStreamReader(is));
				// 定义String类型用于存储单行数据
				String line = null;
				// 创建StringBuffer对象用于存储所有数据
				sb = new StringBuffer();
				while ((line = br.readLine()) != null) {
					sb.append(line);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

		return sb.toString();

	}
}
</span>
这是其中的一种post取数据的方法,还有get取数据,就到下一节课发表代码。