2010-09-15 2 views
3

У меня есть некоторые проблемы с введением моего файла cookie на страницу login.php. Это код:Inject cookie в WebView не работает

LinearLayout lLayout = (LinearLayout)findViewById(R.id.linearlayoutIdLogin); 
lLayout.setVisibility(View.GONE); //make my standard layout inivisible 
LinearLayout lWeb = (LinearLayout)findViewById(R.id.webviewId); 
lWeb.setVisibility(View.VISIBLE); //make my webview visible 
WebView browse = (WebView)findViewById(R.id.webViewBrowse); 

Код, указанный выше. Я загрузил свой WebView, но затем на странице написано, что мне нужно войти в систему.

Это инъекция печенья, которая не работает для меня.

Cookie setcookie = cookie.get(1); 
Cookie othercookie = cookie.get(0); 
/* I assign my two cookies from a List<Cookie>. cookie.get() 
brings the element I need. The cookies overall contains two fields. Therefore 
the get 1 and get 0. All this works, I have tested to make a Toast to 
print out the cookies */ 

//Here it must be anything I'm doing wrong? 
CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.setAcceptCookie(true); 
cookieManager.setCookie("http://www.thedomain.com", setcookie.getValue()); 

browse.setWebViewClient(new WebViewClient(){ }); 
browse.loadUrl("mypagewhenloggedin.php"); 

Любые идеи? Застряли на этом несколько часов. Заранее спасибо!

Отредактированный код: Забыл сказать Я добавил этот файл cookie тоже.

cookieManager.setCookie("http://www.thedomain.com", othercookie.getValue());

ответ

3

getDomain() Использование на Cookie, а не предполагая, что область является "http://www.thedomain.com". Кроме того, рассмотрите возможность использования Wireshark или что-то, чтобы проверить HTTP-запрос, чтобы узнать, что может быть искажено по сравнению с рабочим запросом браузера.

+0

Это была хорошая идея, проверит сейчас! – Curtain

+0

Ну, немного поиграл, и я не могу сделать эту работу. Есть идеи? – Curtain

+0

Я также протестировал, что вход не искажается в простой гостевой книге ... Что меня беспокоит, что я не могу, возможно, повторно использовать мой файл cookie из своего запроса в моем веб-браузере, потому что cookie истек? – Curtain

1

попробовать это изменение

http://developer.android.com/reference/android/webkit/CookieSyncManager.html

CookieManager cookieManager = CookieManager.getInstance(); 

// new line 
CookieSyncManager.createInstance(this); 

cookieManager.setAcceptCookie(true); 
cookieManager.setCookie("http://www.thedomain.com", setcookie.getValue()); 

// new line 
CookieSyncManager.getInstance().sync(); 

browse.setWebViewClient(new WebViewClient(){ }); 
browse.loadUrl("mypagewhenloggedin.php"); 
+0

Будет проверять это прямо! – Curtain

+0

Хм, не могу заставить это работать. В моем вопросе добавлена ​​одна строка, поскольку я забыл ее опубликовать, если это имеет значение. – Curtain

Смежные вопросы