Joa*_*rom 19 cookies post android http
我HttpResponse
在检查用户名或密码是否正确时从服务器获取.当我加载url
一个webview
我想要webView
有cookie(我得到的答案postData()
存储在webView
.我希望webView获取cookie并加载存储在webview中的cookie的URL.
我正在收到回应.
public HttpResponse postData() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://example.com/login.aspx");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("txtUsername", "user"));
nameValuePairs.add(new BasicNameValuePair("txtPassword", "123"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
String responseAsText = EntityUtils.toString(response.getEntity());
Log.v(TAG , "Response from req: " + responseAsText);
return responseAsText;
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我用loadUrl:
webView.loadUrl("http://a_page.com/getpage.aspx?p=home");
Run Code Online (Sandbox Code Playgroud)
我想我不是真正管理一个cookie,我不知道该怎么做.任何建议或解决方案?
Bry*_*eld 11
这真的很简单.
String cookieString = "cookie_name=cookie_value; path=/";
CookieManager.getInstance().setCookie(baseUrl, cookieString);
Run Code Online (Sandbox Code Playgroud)
其cookieString
格式与更传统的Set-Cookie
HTTP标头相同,并且baseUrl
是cookie应属于的站点.
gio*_*.nl 10
我从我的经验中发现了一些让我头疼的评论:
http
和https
网址不同。设置 cookiehttp://www.example.com
与设置 cookie 不同https://www.example.com
https://www.example.com/
有效但https://www.example.com
不起作用。CookieManager.getInstance().setCookie
正在执行异步操作。因此,如果您在设置 url 后立即加载它,则不能保证 cookie 已经被写入。为了防止意外和不稳定的行为,请使用 CookieManager#setCookie(String url, String value, ValueCallback callback) ( link ) 并在调用回调后开始加载 url。我希望我的两分钱可以节省一些人的时间,这样你就不必像我一样面临同样的问题。
小智 5
如果你有很少的带有 cookie 的项目(就像我的例子),你应该将它与一些循环一起使用:
val cookiesList = listOf("key1=someValue1", "key2=someValue2", "key3=someValue3")
cookiesList.forEach { item ->
CookieManager.getInstance().setCookie("http://someHost.com", item)
}
Run Code Online (Sandbox Code Playgroud)
你不能像这样使用它:
CookieManager.getInstance().setCookie("http://someHost.com", "key1=someValue1;key2=someValue2;key3=someValue3")
Run Code Online (Sandbox Code Playgroud)
您可能想看看我如何设置 webview cookie:
在我的回答中,您可以看到我是如何处理这个问题的:
val cookieManager = CookieManager.getInstance()
cookieManager.acceptCookie()
cookieManager.setCookie(domain,"$cookieKey=$cookieValue")
cookieManager.setAcceptThirdPartyCookies(view.webViewTest,true)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
73173 次 |
最近记录: |