wen742538485 发表于 2013-1-14 18:10:23

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();
                        }
                }
      }
}


</namevaluepair></namevaluepair>
页: [1]
查看完整版本: Android 定时到服务器取数据并刷新