1. HttpUtils 该工具类应用于Android客户端+Web服务器
/** * */ package com.nubb.auction.client.util; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /** * Description:利用Url请求Json格式的数据 * * @author maoyun0903@163.com * @version 1.0 */ public class HttpUtil { // 创建HttpClient对象 public static HttpClient httpClient = new DefaultHttpClient(); public static final String BASE_URL = "http://192.168.1.11:8080/auction/android/"; /** * * @param url 发送请求的URL * @return 服务器响应字符串 * @throws Exception */ public static String getRequest(final String url) throws Exception { FutureTask<String> task = new FutureTask<String>( new Callable<String>() { @Override public String call() throws Exception { // 创建HttpGet对象。 HttpGet get = new HttpGet(url); // 发送GET请求 HttpResponse httpResponse = httpClient.execute(get); // 如果服务器成功地返回响应 if (httpResponse.getStatusLine() .getStatusCode() == 200) { // 获取服务器响应字符串 String result = EntityUtils .toString(httpResponse.getEntity()); return result; } return null; } }); new Thread(task).start(); return task.get(); } /** * @param url 发送请求的URL * @param params 请求参数 * @return 服务器响应字符串 * @throws Exception */ public static String postRequest(final String url , final Map<String ,String> rawParams)throws Exception { FutureTask<String> task = new FutureTask<String>( new Callable<String>() { @Override public String call() throws Exception { // 创建HttpPost对象。 HttpPost post = new HttpPost(url); // 如果传递参数个数比较多的话可以对传递的参数进行封装 List<NameValuePair> params = new ArrayList<NameValuePair>(); for(String key : rawParams.keySet()) { //封装请求参数 params.add(new BasicNameValuePair(key , rawParams.get(key))); } // 设置请求参数 post.setEntity(new UrlEncodedFormEntity( params, "gbk")); // 发送POST请求 HttpResponse httpResponse = httpClient.execute(post); // 如果服务器成功地返回响应 if (httpResponse.getStatusLine() .getStatusCode() == 200) { // 获取服务器响应字符串 String result = EntityUtils .toString(httpResponse.getEntity()); return result; } return null; } }); new Thread(task).start(); return task.get(); } }
2. DiaLogUtils 显示指定组件的对话框
/** * */ package com.nubb.auction.client.util; import com.nubb.auction.client.AuctionClientActivity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.DialogInterface.OnClickListener; import android.view.View; /** * Description:显示指定组件的对话框,并跳转至指定的Activity * @author maoyun0903@163.com * @version 1.0 */ public class DialogUtil { // 定义一个显示消息的对话框 public static void showDialog(final Context ctx , String msg , boolean goHome) { // 创建一个AlertDialog.Builder对象 AlertDialog.Builder builder = new AlertDialog.Builder(ctx) .setMessage(msg).setCancelable(false); if(goHome) { builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent i = new Intent(ctx , AuctionClientActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); ctx.startActivity(i); } }); } else { builder.setPositiveButton("确定", null); } builder.create().show(); } // 定义一个显示指定组件的对话框 public static void showDialog(Context ctx , View view) { new AlertDialog.Builder(ctx) .setView(view).setCancelable(false) .setPositiveButton("确定", null) .create() .show(); } }