package com.example.testnet;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
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.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread() {
@Override
public void run() {
String url = "http://192.168.1.100:8080/novel/homeRecommend";
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse response1 = httpclient.execute(httpGet);
//一开始我是写这一句话的,但是报错了.原因是不可以在线程中非UI线程更新UI应该通过handler或者其他方式
/*Toast.makeText(getApplication(),
EntityUtils.toString(response1.getEntity()), 1000)
.show();*/
mHandler.obtainMessage(0,
EntityUtils.toString(response1.getEntity()))
.sendToTarget();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
private Handler mHandler = new Handler() {
// 重写handleMessage()方法,此方法在UI线程运行
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
// 如果成功,则显示从网络获取到的图片
case 0:
Toast.makeText(getApplication(),
(String)msg.obj, 1000)
.show();
break;
}
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
转载于:https://my.oschina.net/liangzhenghui/blog/196601