歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 關於Android連接request和response中攜帶cookie

關於Android連接request和response中攜帶cookie

日期:2017/3/1 10:52:34   编辑:Linux編程

關於Android連接request和response中攜帶cookie:

  1. class LoginTask extends AsyncTask<String, Object, String> {
  2. @Override
  3. protected void onPreExecute() {
  4. progressDialog.setMessage("Loading...");
  5. progressDialog.show();
  6. }
  7. @Override
  8. protected String doInBackground(String... par) {
  9. HttpPost post = new HttpPost(par[0]);
  10. params = new ArrayList<NameValuePair>();
  11. params.add(new BasicNameValuePair("methodName", "login"));
  12. params.add(new BasicNameValuePair("username", username));
  13. params.add(new BasicNameValuePair("password", password));
  14. /**add cookie
  15. * Cookie cookie=new BasicClientCookie("","");
  16. * CookieSpecBase cookieSpecBase=new BrowserCompatSpec();
  17. * List<Cookie> cookies=new ArrayList<Cookie>();
  18. * cookies.add(cookie);
  19. * cookieSpecBase.formatCookies(cookies);
  20. * post.setHeader(cookieSpecBase.formatCookies(cookies).get(0));
  21. */
  22. DefaultHttpClient client=new DefaultHttpClient();
  23. try {
  24. post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
  25. try {
  26. res = client.execute(post);
  27. } catch (Exception e) {
  28. return "網絡連接錯誤,請檢查網絡是否打開!";
  29. }
  30. responseCode = res.getStatusLine().getStatusCode();
  31. if (responseCode != 200)
  32. return "服務器正忙! 返回代碼為:" + responseCode;
  33. /** get cookie
  34. * List<Cookie> cookiess=client.getCookieStore().getCookies();
  35. * cookiess.get(0).getName();
  36. * cookiess.get(0).getValue();
  37. */
  38. bis = new ByteArrayInputStream(EntityUtils.toByteArray(res
  39. .getEntity()));
  40. dis = new DataInputStream(bis);
  41. c = new Customers();
  42. if (dis.readUTF().equals("notnull")) {
  43. c.setCustomerid(dis.readLong());
  44. c.setUsername(dis.readUTF());
  45. c.setPassword(dis.readUTF());
  46. c.setRealname(dis.readUTF());
  47. c.setIdentify(dis.readUTF());
  48. c.setSex(dis.readUTF());
  49. c.setBirthday(dis.readUTF());
  50. c.setCustomeraddress(dis.readUTF());
  51. c.setCreditcard(dis.readUTF());
  52. c.setEmail(dis.readUTF());
  53. c.setTelephone(dis.readUTF());
  54. c.setAddress(dis.readUTF());
  55. c.setZip(dis.readUTF());
  56. c.setRemark(dis.readUTF());
  57. wirteToFile(c.getUsername(), c.getPassword());
  58. } else {
  59. return "請重新輸入密碼或者用戶名不正確!";
  60. }
  61. } catch (UnsupportedEncodingException e) {
  62. return "錯誤:UnsupportedEncodingException";
  63. } catch (IOException e) {
  64. e.printStackTrace();
  65. return "錯誤:讀取流出錯!";
  66. } finally {
  67. try {
  68. if (dis != null || bis != null) {
  69. dis.close();
  70. bis.close();
  71. }
  72. } catch (IOException e) {
  73. return "關閉流失敗";
  74. }
  75. }
  76. return null;
  77. }
  78. @Override
  79. protected void onPostExecute(String result) {
  80. progressDialog.cancel();
  81. if (result != null) {
  82. fail = true;
  83. alertDialog(result);
  84. }
  85. }
  86. }
Copyright © Linux教程網 All Rights Reserved