httpManager
</pre><pre code_snippet_id="1564921" snippet_file_name="blog_20160125_3_1142369" name="code" class="java">import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import android.app.ProgressDialog;
import android.content.Context;
import com.android.volley.RequestQueue;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
// 网络框架封装
public class HttpManager {
private String url;
private Map<String, String> params;
private HttpUtils http;
private boolean isShowDialog;
private Context context;
public HttpManager(Context context, String url, Map<String, String> params,
OnRequestResonseListener listener, boolean isShowDialog) {
this.context = context;
this.url = url;
this.params = params;
this.onRequestResonseListener = listener;
this.isShowDialog = isShowDialog;
//方式1 xutils
// httputils dbutils viewutils bimaputils
http = new HttpUtils();
//方式2 volley 能使网络通信更快,更简单,更健壮
requestQueue = Volley.newRequestQueue(context);
}
public void requestByVolley() {
StringRequest request = new StringRequest(url, new Listener<String>() {
@Override
public void onResponse(String arg0) {
if (onRequestResonseListener != null) {
onRequestResonseListener.onSucesss(arg0);
}
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
if (onRequestResonseListener != null) {
onRequestResonseListener.onFailure(arg0.getMessage());
}
}
});
requestQueue.add(request);
requestQueue.start();
}
public HttpManager(Context context, String url, Map<String, String> params,
OnRequestResonseListener listener) {
this(context, url, params, listener, true);
}
public void get() {
HttpMethod get = HttpMethod.GET;
request(get);
}
public void post() {
HttpMethod post = HttpMethod.POST;
request(post);
}
private void request(HttpMethod get) {
RequestParams requestParams = loadRequestParams();
http.send(get, url, requestParams, new RequestCallBack<String>() {
private ProgressDialog dialog;
@Override
public void onStart() {
super.onStart();
if (isShowDialog)
dialog = ProgressDialog.show(context, null, "正在拼命加载中..");
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
if (dialog != null)
dialog.dismiss();
if (onRequestResonseListener != null)
onRequestResonseListener.onSucesss(responseInfo.result);
}
@Override
public void onFailure(HttpException error, String msg) {
if (dialog != null)
dialog.dismiss();
if (onRequestResonseListener != null)
onRequestResonseListener.onFailure(msg);
}
});
}
private RequestParams loadRequestParams() {
if (this.params == null) {
return null;
}
RequestParams requestParams = new RequestParams();
Set<Entry<String, String>> entrySet = this.params.entrySet();
for (Entry<String, String> entry : entrySet) {
String key = entry.getKey();
String value = entry.getValue();
requestParams.addBodyParameter(key, value);
}
return requestParams;
}
private OnRequestResonseListener onRequestResonseListener;
private RequestQueue requestQueue;
public OnRequestResonseListener getOnRequestResonseListener() {
return onRequestResonseListener;
}
public void setOnRequestResonseListener(
OnRequestResonseListener onRequestResonseListener) {
this.onRequestResonseListener = onRequestResonseListener;
}
public interface OnRequestResonseListener {
void onSucesss(String json);
void onFailure(String errorMsg);
}
}
LoginActivity
</pre><pre name="code" class="java">
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ViewUtils.inject(this);
}
@OnClick(R.id.btn_login)
public void login(View view) {
Map<String, String> params = new HashMap<String, String>();
params.put("username","itcastz10");
params.put("password","admin");
HttpManager http = new HttpManager(this, Constance.LOGINURL, params,
new OnRequestResonseListener() {
@Override
public void onSucesss(String json) {
if (checkJson(json)) {
Toast.makeText(getApplicationContext(), "登录成功",
Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(String errorMsg) {
Toast.makeText(getApplicationContext(), "登录失败",
Toast.LENGTH_SHORT).show();
}
});
http.post();
}
protected boolean checkJson(String json) {
try {
JSONObject rootObj = new JSONObject(json);
String responseVal = rootObj.getString("response");
if (TextUtils.equals("error", responseVal)) {
return false;
} else {
return true;
}
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
}