1 importandroid.os.Handler;2 importandroid.os.Message;3 importandroid.support.v7.app.AppCompatActivity;4 importandroid.os.Bundle;5 importandroid.util.Log;6 importandroid.view.View;7 importandroid.widget.TextView;8
9 importcom.google.gson.Gson;10 importcom.google.gson.reflect.TypeToken;11
12 importorg.apache.http.HttpEntity;13 importorg.apache.http.HttpResponse;14 importorg.apache.http.HttpStatus;15 importorg.apache.http.NameValuePair;16 importorg.apache.http.client.ClientProtocolException;17 importorg.apache.http.client.HttpClient;18 importorg.apache.http.client.entity.UrlEncodedFormEntity;19 importorg.apache.http.client.methods.HttpGet;20 importorg.apache.http.client.methods.HttpPost;21 importorg.apache.http.client.utils.URLEncodedUtils;22 importorg.apache.http.impl.client.DefaultHttpClient;23 importorg.apache.http.message.BasicNameValuePair;24 importorg.apache.http.protocol.HTTP;25 importorg.apache.http.util.EntityUtils;26
27 importjava.io.IOException;28 importjava.io.UnsupportedEncodingException;29 importjava.lang.reflect.Type;30 importjava.util.ArrayList;31 importjava.util.LinkedList;32 importjava.util.List;33
34 public class MainActivity extendsAppCompatActivity {35
36 @Override37 protected voidonCreate(Bundle savedInstanceState) {38 super.onCreate(savedInstanceState);39 setContentView(R.layout.activity_main);40 //开启一个子线程,进行网络操作,等待有返回结果,使用handler通知UI
41 newThread(networkTask).start();42
43 }44
45 Handler handler = newHandler() {46 @Override47 public voidhandleMessage(Message msg) {48 super.handleMessage(msg);49 Bundle data =msg.getData();50 String val = data.getString("value");51 Log.i("mylog", "请求结果为-->" +val);52 //TODO53 //UI界面的更新等相关操作
54 }55 };56
57 /**
58 * 网络操作相关的子线程59 */
60 Runnable networkTask = newRunnable() {61 @Override62 public voidrun() {63 //TODO64 //在这里进行 http request.网络请求相关操作
65 String TAG = "ABC";66
67 //baseUrl
68 String url = "http://192.168.8.7/insert.php";69
70 HttpPost request = newHttpPost(url);71
72 //先将参数放入List,再对参数进行URL编码
73 List params = new LinkedList();74 params.add(new BasicNameValuePair("firstname", "这个是安卓"));75 params.add(new BasicNameValuePair("lastname", "这是安卓加进去的"));76 params.add(new BasicNameValuePair("age", "66"));77
78 try{79 HttpEntity entity = new UrlEncodedFormEntity(params, "UTF-8");80
81 request.setEntity(entity);82
83 HttpClient client = newDefaultHttpClient();84
85 HttpResponse response =client.execute(request);86
87 Log.e(TAG, "Response Code: " +
88 response.getStatusLine().getStatusCode());89
90 if(response.getStatusLine().getStatusCode() ==HttpStatus.SC_OK) {91
92 String data =EntityUtils.toString(response.getEntity());93
94 }95 } catch(IOException e) {96 Log.e(TAG, "~~~~~~"+e);97 e.printStackTrace();98 }99 Message msg = newMessage();100 Bundle data = newBundle();101 data.putString("value", "请求结果");102 msg.setData(data);103 handler.sendMessage(msg);104 }105 }106 }