亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

AndroidHttpClient使用Cookie應用分析

2019-11-26 16:17:42
字體:
來源:轉載
供稿:網友
今天想把一個用使用了HttpClient的自動簽到小程序移植到Android上,還好Android的SDK自帶了HttpClient的包。翻Android的文檔時發現官方還提供了一個實現了HttpClient接口的AndroidHttpClient,上網搜了下沒發現關于AndroidHttpClient的文章。當然也可以繼續使用DefaultHttpClient,但用為Android定制的AndroidHttpClient自然更好。
下面是2個測試用的HttpServlet
復制代碼 代碼如下:

public class LogIn extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession();
String info=request.getParameter("info");
session.setAttribute("info", info);
try {
/* TODO output your page here. You may use following sample code. */
out.println("OK");
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}

復制代碼 代碼如下:

public class Info extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession();
String info=(String)session.getAttribute("info");
try {
/* TODO output your page here. You may use following sample code. */
if(info==null)
out.print("null");
else
out.print(info);
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}

主要代碼在processRequest里,其他可以不用看。
訪問LogIn時傳一個name為info的值,這時瀏覽器會得到一個用于定位服務端session的cookie。然后訪問Info,如果有cookie的話服務端能找到剛才你傳的值并返回給你,沒帶cookie的話就不能找到。
Android端代碼:
復制代碼 代碼如下:

public class MainActivity extends Activity {
private AndroidHttpClient mHttpclient=AndroidHttpClient.newInstance("");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(rTest).start();
}
});
}
private String toString(InputStream is) throws IOException{
String ret="";
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String tmp=br.readLine();
while(tmp!=null){
ret+=tmp;
tmp=br.readLine();
}
br.close();
return ret;
}
private Runnable rTest=new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
BasicHttpContext context=new BasicHttpContext();
context.setAttribute(ClientContext.COOKIE_STORE,new BasicCookieStore());
HttpPost httppost = new HttpPost("http://10.226.233.48:8080/WebApplication1/LogIn");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("info", "你好 世界??!"));
httppost.setEntity(new UrlEncodedFormEntity(nvps,"utf-8"));
HttpResponse response=mHttpclient.execute(httppost,context);
HttpEntity entity = response.getEntity();
Log.i("kagami", MainActivity.this.toString(entity.getContent()));
entity.consumeContent();
HttpGet httpget2 = new HttpGet("http://10.226.233.48:8080/WebApplication1/Info");
HttpResponse response2=mHttpclient.execute(httpget2,context);
HttpEntity entity2 = response2.getEntity();
Log.i("kagami", MainActivity.this.toString(entity2.getContent()));
entity2.consumeContent();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};


捕獲 
AndroidHttpClient和DefaultHttpClient的區別
AndroidHttpClient不能在主線程中execute,會拋出異常。AndroidHttpClient通過靜態方法newInstance獲得實例,參數是代理,不用代理的話填“”。DefaultHttpClient默認是啟用Cookie的,AndroidHttpClient默認不啟用Cookie,要使用的話每次execute時要加一個HttpContext參數,并且添加CookieStore。用完后別忘了close不然不能創建新實例。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩中文字幕在线| 亚洲在线视频观看| 国产成人精品一区二区在线| 精品久久久久久久久国产字幕| 国产精品老女人视频| 91系列在线播放| 日韩欧美精品在线观看| 97视频在线播放| 国产精品免费观看在线| …久久精品99久久香蕉国产| 国产在线观看精品| 色多多国产成人永久免费网站| 欧美韩国理论所午夜片917电影| 69久久夜色精品国产69| 欧美日韩在线另类| 91综合免费在线| 国内精品久久久久影院 日本资源| 亚洲伊人一本大道中文字幕| 亚洲在线观看视频网站| 欧美成人亚洲成人| 欧美成人在线免费| 日韩美女视频免费看| 97久久久久久| 日韩大胆人体377p| 96国产粉嫩美女| 久久久噜噜噜久久| 国产精品揄拍一区二区| 在线视频欧美性高潮| 91av视频在线播放| 亚洲免费视频在线观看| 97久久国产精品| 亚洲精品电影在线观看| 亚洲最大福利视频网站| 国产精品久久久久久av福利软件| 欧美激情精品久久久久久蜜臀| 黑人与娇小精品av专区| 欧美中文在线视频| 国产日本欧美在线观看| 日韩激情av在线免费观看| 成人午夜两性视频| 亚洲美女免费精品视频在线观看| 国产98色在线| 亚洲男人天堂网站| 欧美高清视频一区二区| 亚洲激情在线观看| 久久精品国产v日韩v亚洲| 国产999精品久久久影片官网| 亚洲人成电影网站色…| 日韩成人激情在线| 国产精品91久久久| 国产欧美一区二区三区视频| 羞羞色国产精品| 曰本色欧美视频在线| 欧美日韩成人网| 俺也去精品视频在线观看| 欧美日韩中文字幕日韩欧美| 亚洲欧美制服丝袜| 日韩欧美在线网址| 黑人狂躁日本妞一区二区三区| 亚洲在线免费看| 国产午夜精品理论片a级探花| 亚洲第一免费播放区| 欧美午夜电影在线| 欧美理论电影网| 伊人男人综合视频网| 成人免费高清完整版在线观看| 欧美xxxwww| 亚洲福利小视频| 国产精品欧美激情| 亚洲精品国产精品自产a区红杏吧| 欧美一级淫片videoshd| 国产精欧美一区二区三区| 国产精品视频精品| 91香蕉电影院| 久久躁日日躁aaaaxxxx| 欧美激情欧美狂野欧美精品| 欧美成人午夜免费视在线看片| 亚洲成色777777在线观看影院| 久久精品视频播放| 欧美亚洲在线观看| 国产精品视频不卡| 一区二区在线视频| 欧美日韩亚洲天堂| 日韩成人网免费视频| 亚洲国产精彩中文乱码av在线播放| 日韩小视频在线| 欧美黑人一级爽快片淫片高清| 美日韩精品视频免费看| 日韩av在线电影网| 欧美国产日韩中文字幕在线| 日韩二区三区在线| 日韩在线观看免费全| 国产欧美精品日韩| 亚洲成人久久网| 亚洲成色777777在线观看影院| 国产一区二区三区精品久久久| 欧美成人午夜免费视在线看片| 午夜精品久久久久久99热| 日韩毛片在线看| 神马久久久久久| 91精品久久久久| 日韩在线播放一区| 热久久美女精品天天吊色| 欧美一级视频免费在线观看| 欧美日韩裸体免费视频| 亚洲色图欧美制服丝袜另类第一页| 国产91在线视频| 国产一区二区在线播放| 国产亚洲精品激情久久| 一区二区欧美在线| 国产91色在线|| 国内精品久久久久久久久| 视频直播国产精品| 第一福利永久视频精品| 久久久在线观看| 欧美一区深夜视频| 在线观看日韩www视频免费| 成人久久一区二区三区| 91久久精品视频| 亚洲成人黄色在线观看| 欧美另类老女人| 色哟哟亚洲精品一区二区| 青青草精品毛片| 国产亚洲欧美日韩一区二区| 国产精品自拍小视频| 成人免费视频xnxx.com| 亚洲国产精品va在线看黑人动漫| 国产精品久久久久999| 欧美在线视频免费观看| 色av中文字幕一区| 69久久夜色精品国产69乱青草| 亚洲自拍偷拍第一页| 国产精品中文在线| 亚洲黄色www网站| 久久影视免费观看| 国产亚洲一级高清| 欧美国产极速在线| 国产有码在线一区二区视频| 92看片淫黄大片看国产片| 国产精品久久色| 国产精品欧美日韩久久| 国产精品美女999| 亚洲美女在线视频| 69av在线播放| 欧美俄罗斯乱妇| 日韩www在线| 久久99久久99精品免观看粉嫩| 国产视频自拍一区| 中文字幕欧美在线| 久久五月天色综合| 欧美老女人www| 亚洲精品成人av| 欧美色xxxx| 国产免费观看久久黄| 色婷婷成人综合| 亚洲精品久久7777777| 精品福利在线看| 九色成人免费视频| 精品视频在线导航| 97热在线精品视频在线观看| 精品国产一区二区三区久久狼黑人| 91久久精品国产| 日韩在线资源网| 亚洲精品日韩丝袜精品|