Android WebView请求,保存cookie,判断登录状态

来源:互联网 发布:聚推吧怎样下载软件 编辑:程序博客网 时间:2024/05/29 14:23

TestActivity.java

import org.apache.http.client.CookieStore;import org.apache.http.cookie.Cookie;import org.apache.http.impl.client.BasicCookieStore;import org.apache.http.impl.cookie.BasicClientCookie;import com.ydzy.machine.bean.DataCenter;import net.tsz.afinal.FinalHttp;import net.tsz.afinal.http.AjaxCallBack;import android.graphics.Bitmap;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.webkit.CookieManager;import android.webkit.CookieSyncManager;import android.webkit.WebView;import android.webkit.WebViewClient;public class TestActivity extends BaseActivity implements OnClickListener{WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.test);webView=(WebView) findViewById(R.id.web);webView.getSettings().setJavaScriptEnabled(true);//webView.addJavascriptInterface(this, "data");webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹出窗口webView.getSettings().setUseWideViewPort(true);// 设置此属性,可任意比例缩放。webView.loadUrl("http://cangku.card-books.com/app_dev.php/login");webView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stubview.loadUrl(url);return false;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {// TODO Auto-generated method stubsuper.onPageStarted(view, url, favicon);}@Overridepublic void onPageFinished(WebView view, String url) {// TODO Auto-generated method stubsuper.onPageFinished(view, url);//IWLog.d(TAG, "onPageFinished() url is:"+url);              /* 将cookie保存起来*/              String c = CookieManager.getInstance().getCookie(url);              System.out.println(c+"------c--->");            DataCenter.setCookie(c);              CookieSyncManager.getInstance().sync();  }});}@Overridepublic void onClick(View v) {if(v.getId()==R.id.get_bt){System.out.println("--------->");FinalHttp fb=new FinalHttp();CookieStore cookieJar= new BasicCookieStore();  String _cookie = DataCenter.getCookie();              if(_cookie !=null && !_cookie.equals("")){                  String[] cookies = _cookie.split(";");                  for(int i=0; i< cookies.length; i++){                      String[] nvp = cookies[i].split("=");                      System.out.println("-----nvp:"+nvp[0]+"---->"+nvp[1]);                    BasicClientCookie c = new BasicClientCookie(nvp[0], nvp[1]);                      c.setVersion(0);                       c.setDomain(".card-books.com");//这里是自己的主机地址                       cookieJar.addCookie(c);                  }             }             //            BasicClientCookie c = new BasicClientCookie("PHPSESSID","43ntd1pulgbo9s9ji5rdm3mve3");//            cookieJar.addCookie(c);fb.configCookieStore(cookieJar);fb.get("http://cangku.card-books.com/app_dev.php/user/retrieve", new AjaxCallBack<Object>(){@Overridepublic void onStart() {// TODO Auto-generated method stubsuper.onStart();}@Overridepublic void onFailure(Throwable t, int errorNo, String strMsg) {// TODO Auto-generated method stubsuper.onFailure(t, errorNo, strMsg);showToast(TestActivity.this, t.toString()+"--fail->");System.out.println(t.toString()+"--fail->");}@Overridepublic void onSuccess(Object t) {// TODO Auto-generated method stubsuper.onSuccess(t);showToast(TestActivity.this, t.toString()+"--succ->");System.out.println(t.toString()+"--succ->");}});}}}

Sentence.java

public class Sentence{private int id;private String title;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Sentence(int id,String title){setId(id);setTitle(title);}}

test.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button          android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="get"        android:id="@+id/get_bt"        android:onClick="onClick"        />            <WebView          android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/web"                />    </LinearLayout>



0 0
原创粉丝点击