AndroidHttpClient使用Cookie

AndroidHttpClient使用Cookie

今天想把一个用使用了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 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 {out.println(“OK”);} finally {out.close();}}* 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*/@Overrideprotected 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*/@Overrideprotected 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*/@Overridepublic 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 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 {(info==null)out.print(“null”);elseout.print(info);} finally {out.close();}}* 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*/@Overrideprotected 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*/@Overrideprotected 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*/@Overridepublic String getServletInfo() {return “Short description”;}// </editor-fold>}

主要代码在processRequest里,其他可以不用看。

访问LogIn时传一个name为info的值,这时浏览器会得到一个用于定位服务端session的cookie。然后访问Info,如果有cookie的话服务端能找到刚才你传的值并返回给你,没带cookie的话就不能找到。

Android端代码:

灿烂甜美!那一瞬的激-情绽放,催人奋进!胜利,永远属于为梦想奋斗的人新乐吧

AndroidHttpClient使用Cookie

相关文章:

你感兴趣的文章:

标签云: