1、首先添加AsyncHttpClient.jar包到libs檔案夾下
2、初始化請求類以及響應回調類
private AsyncHttpClient client;
private AsyncHttpResponseHandler asyncHttpResponseHandler;
3、網絡權限
<!-- 網絡連結 -->
<uses-permission android:name="android.permission.INTERNET" />
4、執行個體化響應類
/**
* 設定請求響應
*/
private void setListener(final Context context) {
asyncHttpResponseHandler = new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int i, Header[] headers, byte[] bytes) {
String jsonStr = new String(bytes);
Log.i("lgq","sss===="+jsonStr);
}
@Override
public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
String jsonStr = new String(bytes);
Log.i("lgq","sssbbb===="+jsonStr);
}
};
}
5、開始請求,添加了header請求參數和常用請求參數
注:如果是HttpURLConnection請求,添加header請求參數方法是:
conn.setRequestProperty("headkey","headervalue");
public void httpheader(){
client = new AsyncHttpClient();
client.addHeader("headkey", "22aa");//添加header請求參數方法
RequestParams requestParams = new RequestParams();
requestParams.add("password", "123");//添加常用請求參數方法
String strUrl = "http://192.168.0.110:8080/servletDemo/testa?method=login&username=xzgkof&";
client.post(this, strUrl, requestParams, asyncHttpResponseHandler);//開始請求
}
6、Android 請求結果:
02-22 11:09:19.492 21796-21796/com.tianxin.httpheader I/lgq: sss===={"msg":["登入成功!錘子進來"]}
二、附java響應實作代碼
public JSONObject formatJsonData(String key,List<?> list){
JSONObject json = new JSONObject();
JSONArray ja = JSONArray.fromObject(list);
json.element(key, ja);
return json;
}
public void login(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
String usname = request.getParameter("username");//擷取常用方法請求參數
String psword = request.getParameter("password");
System.out.println("hhhhhhhhhhhhhhhhh========"+request.getHeader("headkey"));//擷取header請求參數
HttpSession session = request.getSession();
List<Object> msgList = new ArrayList<Object>();
// if (session.isNew()) {
// msgList.add("isNew==="+session.getId());
// }else {
// msgList.add("==="+session.getId());
// }
if(usname != null || psword != null){
if(session.getAttribute("usname") != null){
if(session.getAttribute("usname").equals(usname)
&&session.getAttribute("psword").equals(psword)){
okreString ="登入成功";
msgList.add("登入成功!上面水電費");
}else{
msgList.add("登入失敗!使用者名密碼不可為空!");
okreString ="登入失敗了";
}
}else{
if(usname.equals("xzgkof")&& psword.equals("123")){
msgList.add("登入成功!錘子進來");
session.setAttribute("usname", usname);
session.setAttribute("psword", psword);
session.setMaxInactiveInterval(30*60);//設定機關為秒,設定為-1永不過期
okreString ="登入成功111";
}else{
msgList.add("登入失敗!使用者名或密碼錯誤!");
okreString ="登入失敗了1111";
//session.setMaxInactiveInterval(1);
//request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
}else{
msgList.add("使用者名,密碼不可為空!");
}
List<Object> msgList22 = new ArrayList<Object>();
msgList22.add("你的過第三方");
response.getWriter().print(formatJsonData("msg",msgList));
// response.getWriter().print(createJSONObject());
}
java擷取header請求參數結果:
demo下載下傳連結:https://download.csdn.net/download/meixi_android/10970252
demo雲盤連結:https://pan.baidu.com/s/1wor8EZ7RjSddDK2Pw44C4g
雲盤密碼:回複QQ——1085220040