第一種,通過httpclient方式的異步加載過程
new AsyncTask<Void, Void, String>(){
@Override
protected String doInBackground(Void... params) {
try {
//建立一個網絡連接配接
HttpClient client=new DefaultHttpClient();
//設定端口
HttpPost post=new HttpPost("http://172.88.134.132:8080/ems/addEmp");
post.setHeader("Content-Type", "appliction/x-www-form-urlencoded");
//獲得而一個解析實體類(在這一步開始的異常)
List<NameValuePair> parameters=new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("name", emp.getName()));
parameters.add(new BasicNameValuePair("Salary", String.valueOf(emp.getSalary())));
parameters.add(new BasicNameValuePair("age", String.valueOf(emp.getAge())));
parameters.add(new BasicNameValuePair("gender", emp.getGender()));
HttpEntity entity=new UrlEncodedFormEntity(parameters);
//終于到了我們的請求響應
HttpResponse resp = client.execute(post);
//兩種方法去解析我們的結果
//第一種
//第二種
String result=EntityUtils.toString(resp.getEntity());
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
listener.onAddFinish(result);
}
}.execute();
第二種 通過另啟動一個線程,HttpURLConnection的連接配接
new Thread(){
@Override
public void run() {
try {
URL url=new URL(“http://172.88.134.132:8080/ems/regist.do“);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
//請求方式
connection.setRequestMethod(“POST”);
//接受伺服器的響應
connection.setDoInput(true);
//向伺服器提供資料
connection.setDoOutput(true);
//在請求頭中為,請求的内容說明,設定請求n參數
connection.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded”);
connection.connect();
//用戶端送出資料
OutputStream out = connection.getOutputStream();
PrintWriter pw=new PrintWriter(out,true);
// String params=”log”+user.getName()+”“+user.getPassword()+”“+user.getRealname()+”“+user.getEmail();
String params=getParams(user);
pw.print(params);
pw.close();
//從用戶端擷取伺服器響應
InputStream in =connection.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in));
final String result=br.readLine();
br.close();
//在主線程執行
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
listener.onregistFinishlistener(result);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();