Java Android:BasicClientCookie/CookieStore在cookie值周围添加引号
我正在使用以下代码片段向Android中的http请求添加cookie,该请求使用Android的DefaultHttpClient发送:Java Android:BasicClientCookie/CookieStore在cookie值周围添加引号,java,android,cookies,apache-commons-httpclient,Java,Android,Cookies,Apache Commons Httpclient,我正在使用以下代码片段向Android中的http请求添加cookie,该请求使用Android的DefaultHttpClient发送: CookieStore cookieStore = new BasicCookieStore(); BasicClientCookie2 cookie = new BasicClientCookie2("AUTH_TOKEN", "MY_TOKEN"); cookie.setVersion(1); cookie.setDomain("my.domain.co
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie2 cookie = new BasicClientCookie2("AUTH_TOKEN", "MY_TOKEN");
cookie.setVersion(1);
cookie.setDomain("my.domain.com");
cookie.setPath("/");
cookieStore.addCookie(cookie);
context.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
当我在服务器上查看收到的cookie值时,我得到
Cookie: $Version=1; AUTH_TOKEN="MY_TOKEN"
但我期待的是(注意缺少的引号):
不幸的是,额外的引号导致服务器(我无法管理)阻塞,完全忽略cookie
我尝试使用BasicClientCookie
而不是BasicClientCookie 2
,但运气不佳。是否对此进行了修复或我遗漏了一些明显的内容?RFC 6265:
cookie-header = "Cookie:" OWS cookie-string OWS
cookie-string = cookie-pair *( ";" SP cookie-pair )
cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
所以用户代理可能会在值周围加引号。显然,调用
cookie.setVersion(0)应该修复此问题,因为根据,Cookie规范的版本0中的引号无效
在我的例子中,由于这是我必须随请求发送的唯一cookie,我自己只是将其添加为一个标题:
post.addHeader(“Cookie”、“AUTH_TOKEN=“+myAuthToken”)
cookie-header = "Cookie:" OWS cookie-string OWS
cookie-string = cookie-pair *( ";" SP cookie-pair )
cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )