您的位置:首页 > 理论基础 > 计算机网络

Android HttpClient网络通信

2011-03-29 10:27 423 查看
<?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">  

    <Button android:text="GET" android:id="@+id/Button01"  

        android:layout_width="fill_parent"  

        android:layout_height="wrap_content">  

    </Button>  

    <Button android:text="POST" android:id="@+id/Button02"  

        android:layout_width="fill_parent"  

        android:layout_height="wrap_content">  

    </Button>  

    <TextView android:id="@+id/TextView" android:layout_width="fill_parent"  

        android:layout_height="wrap_content"/>  

</LinearLayout>  

package com.Aina.Android;  

  

import java.io.BufferedReader;  

import java.io.IOException;  

import java.io.InputStream;  

import java.io.InputStreamReader;  

import java.io.UnsupportedEncodingException;  

import java.net.HttpURLConnection;  

import java.net.MalformedURLException;  

import java.net.URL;  

import java.util.ArrayList;  

import java.util.List;  

  

import org.apache.http.HttpEntity;  

import org.apache.http.HttpResponse;  

import org.apache.http.HttpStatus;  

import org.apache.http.NameValuePair;  

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 org.apache.http.util.EntityUtils;  

  

import android.app.Activity;  

import android.os.Bundle;  

import android.os.Handler;  

import android.os.Message;  

import android.view.View;  

import android.widget.Button;  

import android.widget.TextView;  

  

public class Test extends Activity implements Runnable{  

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

    private Button btn_get = null;  

    private Button btn_post = null;  

    private TextView tv_rp = null;  

    @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

        btn_get = (Button) this.findViewById(R.id.Button01);  

        btn_post = (Button) this.findViewById(R.id.Button02);  

        tv_rp = (TextView) this.findViewById(R.id.TextView);  

        btn_get.setOnClickListener(new Button.OnClickListener(){  

  

            public void onClick(View v) {  

                // TODO Auto-generated method stub  

                String httpUrl = "http://192.168.0.132:8080/Android/httpreq.jsp?par=request-get";  

                HttpGet request = new HttpGet(httpUrl);  

                HttpClient httpClient = new DefaultHttpClient();  

                try {  

                    HttpResponse response = httpClient.execute(request);  

                    if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){  

                        String str = EntityUtils.toString(response.getEntity());  

                        tv_rp.setText(str);  

                    }else{  

                        tv_rp.setText("请求错误");  

                    }   

                } catch (ClientProtocolException e) {  

                    // TODO Auto-generated catch block  

                    e.printStackTrace();      

                } catch (IOException e) {  

                    // TODO Auto-generated catch block  

                    e.printStackTrace();  

                }  

            }  

              

        });  

        btn_post.setOnClickListener(new Button.OnClickListener(){  

  

            public void onClick(View v) {  

                // TODO Auto-generated method stub  

                String httpUrl = "http://192.168.0.132:8080/Android/httpreq.jsp";  

                HttpPost request = new HttpPost(httpUrl);  

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

                params.add(new BasicNameValuePair("par","request-post"));  

                try {  

                    HttpEntity entity = new UrlEncodedFormEntity(params, "UTF-8");  

                    request.setEntity(entity);  

                    HttpClient client = new DefaultHttpClient();  

                    HttpResponse response = client.execute(request);  

                    if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){  

                        String str = EntityUtils.toString(response.getEntity());  

                        tv_rp.setText(str);  

                    }else{  

                        tv_rp.setText("请求错误");  

                    }  

                } catch (UnsupportedEncodingException e) {  

                    // TODO Auto-generated catch block  

                    e.printStackTrace();  

                } catch (ClientProtocolException e) {  

                    // TODO Auto-generated catch block  

                    e.printStackTrace();  

                } catch (IOException e) {  

                    // TODO Auto-generated catch block  

                    e.printStackTrace();  

                }  

            }  

              

        });  

        new Thread(this).start();  

    }  

    public void refresh(){  

        String httpUrl = "http://192.168.0.132:8080/Android/httpreq.jsp";  

        try {  

            URL url = new URL(httpUrl);  

            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();  

            urlConn.connect();  

            InputStream input = urlConn.getInputStream();  

            InputStreamReader inputreader = new InputStreamReader(input);  

            BufferedReader reader = new BufferedReader(inputreader);  

            String str = null;  

            StringBuffer sb = new StringBuffer();  

            while((str = reader.readLine())!= null){  

                sb.append(str).append("/n");  

            }  

            if(sb != null){  

                tv_rp.setText(sb.toString());  

            }else{  

                tv_rp.setText("NULL");  

            }  

            reader.close();  

            inputreader.close();  

            input.close();  

            reader = null;  

            inputreader = null;  

            input = null;  

        } catch (MalformedURLException e) {  

            e.printStackTrace();  

        } catch (IOException e) {  

            // TODO Auto-generated catch block  

            e.printStackTrace();  

        }  

    }  

    public Handler handler = new Handler(){  

        public void handleMessage(Message msg){  

            super.handleMessage(msg);  

            refresh();  

        }  

    };  

    public void run() {  

        // TODO Auto-generated method stub  

        while(true){  

            try {  

                Thread.sleep(1000);  

                handler.sendMessage(handler.obtainMessage());  

            } catch (InterruptedException e) {  

                // TODO Auto-generated catch block  

                e.printStackTrace();  

            }  

        }  

    }  

}  

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

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

      package="com.Aina.Android"  

      android:versionCode="1"  

      android:versionName="1.0">  

    <application android:icon="@drawable/icon" android:label="@string/app_name">  

        <activity android:name=".Test"  

                  android:label="@string/app_name">  

            <intent-filter>  

                <action android:name="android.intent.action.MAIN" />  

                <category android:name="android.intent.category.LAUNCHER" />  

            </intent-filter>  

        </activity>  

  

    </application>  

<uses-permission android:name="android.permission.INTERNET" />  

  

</manifest>   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息