`
whao189
  • 浏览: 124641 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android 给url添加cookie

 
阅读更多
前些天因为项目需要写了一个通过网络连接去服务端拿数据的方法,但是需要让程序添加上cookie,因为之前对cookie 没有怎么研究过(包括做web 那会也没有用过或者说很少用),所以

一时用起来不太会用。。结果百度google 了一把 发现要用cookieManager这个类,然后对这个类进行操作就行了!

String getCookie(Context context){
CookieManager cookieManager = CookieManager.getInstance();
String        cookie = cookieManager.getCookie("cookie");
if(cookie != null){
	return cookie;
}else{
cookie= “XXX”;
cookieManager.setCookie("cookie", cookie);
return cookie;
}
}


可以看到 我们只要设置在这里面然后再使用的时候我们在自己的httpconnection中添加就行了

URL  url = new URL(urlPath);
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setRequestProperty("cookie", getCookie(context));


这样做 貌似是正确的。。当时我也是这么理解的。。但是很不幸的 是 。。。报错了。。

提示createInstance() must be instance called before getinstance()

很明显 我们必须要首先产生这个实例。。。结果查了一下API 需要在 getInstance()之前先
CookieSyncManager.createInstance(context);


这样之后就不会出错了。。createInstance 之后保证了我们的。。webkit在使用CookieManager的时候 使用的是同一个CookieManager并保证了 线程同步。。。。

这一点我们可以参看CookieSyncManager.createInstance(context);的源码。。。。。
分享到:
评论
1 楼 jamkier 2014-08-09  
引用

相关推荐

    Android使用AsyncHttpClient读写Cookie

    4. 添加Cookie到请求:在发送请求时,如果已经有了Cookie,可以通过setHeader方法添加到请求头中。 ```java client.addHeader("Cookie", "CookieName=CookieValue"); ``` 5. 保存和加载Cookie:为了在应用重启后...

    原生登录cookie保持提供webview使用

    3. **添加cookie到WebView**:将从原生登录获取的cookie添加到`CookieManager`,这样WebView在后续的加载请求中会附带这些cookie。 ```java String cookieValue = "session_id=" + sessionId + "; Path=/; Secure; ...

    cookie 自动管理

    本文将详细讲解如何在Android中进行Cookie的自动管理,包括获取Cookie、自动发送Cookie以及相关的最佳实践。 一、Cookie的基本概念 Cookie是由服务器发送到客户端(通常是浏览器)的一小段文本信息,当客户端再次向...

    android实现http中请求访问添加cookie的方法

    本文将详细讲解如何在Android中实现HTTP请求时添加Cookie,以确保服务器能够识别并处理客户端的会话。 首先,让我们了解Cookie的基本概念。Cookie是由服务器发送到浏览器并存储在本地的一小段文本数据,它包含了...

    安卓使用httpClient实现网络请求并通过cookie维持对话

    在Android Studio项目中,由于HttpClient已被弃用,我们需要在build.gradle模块文件中添加一个依赖,通常是添加`androidx.core:core-httpclient`或者使用第三方库如OkHttp。如果选择使用Apache HttpClient,添加...

    android cookie获取和设置,webView的cookie的同步

    本篇文章将深入探讨如何在Android中获取和设置Cookie,以及如何在HttpClient请求与WebView之间同步Cookie。 首先,让我们关注`HttpClient`。Apache HttpClient是Android SDK早期版本中广泛使用的网络通信库,用于...

    android获取jsessionId和发送jsessionId

    当用户访问一个需要会话支持的Web应用时,服务器会在响应中通过Set-Cookie头部将`jsessionId`发送给客户端(通常是浏览器或Android应用),客户端则将其保存在Cookie中,并在后续的请求中自动附带这个标识,以便...

    android + h5 混合开发 webview 版 小实例 + 数据交互 + 界面交互+ js调用java +java 调用js

    if (url.startsWith("androidjs:")) { // 自定义协议,例如androidjs:doSomething handleAndroidCall(url.substring("androidjs:".length())); return true; } return super.shouldOverrideUrlLoading(view, ...

    okhttp请求简单封装和cookie管理

    OkHttp是一个高效的HTTP客户端库,由Square公司开发,广泛应用于Android和Java项目中。本教程将深入探讨如何在Eclipse平台上使用OkHttp进行简单的请求封装和Cookie管理,以实现更加便捷、高效的应用程序网络通信。 ...

    Android代码-Android-X5WebView基本封装

    著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用、开源项目仅供学习交流、也希望大家尊重笔者的劳动成果,谢谢。

    webview 设置cookie 拍照上传图片

    然后,将服务器返回的cookie添加到CookieManager: ```java String cookie = "key=value; expires=Wed, 09 Jun 2021 10:18:14 GMT"; cookieManager.setCookie(url, cookie); ``` 最后,确保Webview可以读取...

    volley请求网络,带cookie及不带cookie等各种请求方式

    总结,Volley为Android开发者提供了强大且灵活的网络请求能力,无论是基本的请求还是带有Cookie的复杂请求,都能通过适当的配置轻松实现。理解Volley的工作原理和这些高级特性,将有助于构建更高效、更稳定的应用...

    android post登陆教务系统

    1. 创建HttpPost对象,并指定目标URL(教务系统的登录接口地址)。 2. 创建NameValuePair对象或RequestBody对象,封装登录所需的键值对(如“username”和“password”)。 3. 将键值对添加到HttpEntity中,然后设置...

    Android用HttpConnection访问网络时实现类似浏览器自动保持上一次会话的功能

    4. **添加Cookie到请求头**:在发送请求前,我们需要从`CookieManager`中获取已有的Cookie,并添加到请求头的`Cookie`字段中: ```java List<HttpCookie> cookies = cookieManager.getCookieStore().get(url); ...

    android 自定义网页浏览器

    9. **JavaScript接口**:Android应用可以通过`addJavascriptInterface()`方法暴露Java对象给JavaScript调用,实现两者之间的通信,增强网页与应用的互动性。 10. **性能优化**:为了提高加载速度和减少内存占用,...

    android获取web服务器端session并验证登陆

    同时,服务器将这个Session ID返回给客户端(通常是浏览器),客户端将其保存在Cookie或Local Storage中。后续的每次请求,客户端都会携带这个Session ID,服务器根据ID找到对应的状态信息,从而识别用户身份。 二...

    Android简单网页浏览器的开发.

    - 可以添加一个地址栏,允许用户输入URL,并调用`loadUrl()`加载自定义的网页。 4. **权限处理** - 由于涉及到网络访问,需要在AndroidManifest.xml中添加INTERNET权限: ```xml <uses-permission android:name...

    Android WebView 新浪微博自动登陆

    总之,实现Android WebView的新浪微博自动登录涉及WebView的初始化、JavaScript注入、Cookie管理以及登录状态的持久化。这个过程需要对Android开发、网络请求、以及可能的安全问题有深入理解。通过以上步骤,你可以...

    Android读取 html网页

    2. **网络权限**:在AndroidManifest.xml中添加`<uses-permission>`标签,如`<uses-permission android:name="android.permission.INTERNET" />`,以确保应用有访问互联网的权限。 3. **数据加载**:除了直接加载...

    Android-网络通信框架Volley使用详解

    在Volley中,可以使用`RequestQueue`的`add()`方法添加一个`StringRequest`来发送GET请求。`StringRequest`构造函数需要传入URL和两个回调接口:`onResponse`用于处理成功的响应,`onErrorResponse`处理错误。 ```...

Global site tag (gtag.js) - Google Analytics