Handler handler = new Handler(new android.os.Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
switch (msg.arg1) {
case 1: // 對獲取的數據進行操做android
break;
case 2: // 對獲取到數據進行操做網絡
break;
default:app
break;
}ide
return false;
}
});oop
//聯網前,檢查網絡的操做在此省略不寫。post
public void sendWebRequest() {
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection conn = null;
try {
URL url = new URL("www.baidu.com");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");// get請求方式:從服務端讀取數據ui
/*
* post:將數據提交到服務端。 注意點: 每條數據以鍵值對形式存在 數據間用 & 分隔
* conn.setRequestMethod("POST"); //post:將數據提交到服務端
* DataOutputStream dataoutputstream=new DataOutputStream( conn.getOutputStream() );
* dataoutputstream.writeBytes("username=haha&password=123456" );url
//每條數據以鍵值對形式存在,數據間用 & 分隔
*/線程
conn.setConnectTimeout(8 * 1000);
conn.setReadTimeout(1000 * 8);
conn.connect();code
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuffer buffer = new StringBuffer(); // 用於存儲獲取到的數據
String line;
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
// 注意點: 子線程不能對UI控件操做,須要到主線程(即UI線程)才能操做ui控件
Looper.prepare();
Message message = handler.obtainMessage();
message.obj = buffer;
message.arg1 = 1;
handler.sendMessage(message);
Looper.loop();
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (conn != null) {
conn.disconnect();
}
}
}
}).start();
}
public void sendhttpconnet() {
new Thread(new Runnable() {
public void run() {
try {
// HttpClient是一個接口,不能new 自己。 故new 一個默認的httpclient
HttpClient httpclient = (HttpClient) new DefaultHttpClient();
HttpGet get = new HttpGet("http://www.baidu.com"); // get請求
/*
* post 請求:提交數據到服務端,或者上傳文件到服務端 HttpPost post=new
* HttpPost("http://www.baidu.com"); List<NameValuePair>
* parameters=new ArrayList<NameValuePair>(); //用來存放數據
* parameters.add(new BasicNameValuePair("name", "admin"));
* parameters.add(new BasicNameValuePair("pwd", "123456"));
* UrlEncodedFormEntity entity1=new UrlEncodedFormEntity(parameters, "utf-8");
* post.setEntity(entity1);
*/
HttpResponse respone = httpclient.execute(get);
// 判斷是否請求成功
if (respone.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = respone.getEntity();
String s = EntityUtils.toString(entity, "utf-8"); // 轉換成 String 類型
Looper.prepare();
Message message = handler.obtainMessage();
message.obj = s;
message.arg1 = 2;
handler.sendMessage(message);
Looper.loop();
}
} catch (Exception e) {
e.printStackTrace();
}
} }).start(); }