public class MainActivity extends Activity {
String url="http://www.baidu.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyasyTask task = new MyasyTask();
try {
String execute = task.execute("http://apis.juhe.cn/goodbook/catalog?",url).get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
return super.onKeyDown(keyCode, event);
}
class MyasyTask extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(MainActivity.this, "准备开始联网", 0).show();
}
//子线程中作耗时操作
@SuppressLint("ShowToast")
@Override
protected String doInBackground(String... params) {
publishProgress("快","","");
publishProgress("要","","");
publishProgress("放","","");
publishProgress("学","","");
publishProgress("了","","");
String s1 = params[0];//获得需要请求数据的地址并将地址传到onpostExecute
HttpClient httpClient=new DefaultHttpClient();
HttpPost httpPost=new HttpPost(s1);
//post
List<NameValuePair> list=new ArrayList<NameValuePair>();
list.add(new BasicNameValuePair("key", "cca134699ab46a8322a322c8c011449a"));
UrlEncodedFormEntity baEntity;
String str=null;
try {
baEntity = new UrlEncodedFormEntity(list);
httpPost.setEntity(baEntity);
//执行联网操作,并请求回响应值
HttpResponse response = httpClient.execute(httpPost);
int code = response.getStatusLine().getStatusCode();
if(code==200){
HttpEntity entity = response.getEntity();
str = EntityUtils.toString(entity);
}
} 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();
}
return str;
}
protected void onPostExecute(String result) {
Log.i("hhh", result);
};
//在publishprogress后调用并接收传的进度值
protected void onProgressUpdate(String[] values) {
Toast.makeText(MainActivity.this,values[0], 0).show();
};
}
}