5
回答
Java Map 纠结
华为云4核8G,高性能云服务器,免费试用   
private void setCookie(){
		String[] cookies = this.getHeaderField("Set-Cookie").split(";");
		this.cookies = new HashMap<String,String>();
		for (String cookie : cookies) {
			String[] c = cookie.split("=");
			//System.out.println(c[0] + "--->" + c[1]);
			this.cookies.put(c[0], c[1]);
		}
	}

将Cookie放进HashMap后System.out.println输出如下
uzo0_2132_sid--->YxrGx1
expires--->Wed, 08-Aug-2012 06:58:21 GMT
path--->/

纠结的问题是 this.cookies.get("expires"); 返回null。访问哪个值都返回null。纠结谁晓得怎么回事说说哈,本人新手呢。
举报
共有5个答案 最后回答: 6年前

你程序没贴全吧,按照你贴的代码,cookies应该是个全局hashmap变量,我按你给的程序测试了下,是能够正确get到cookies里面的值的,应该是你还有其他代码没贴出来,所以不好判断。

 

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

public class TestMap {
	private static HashMap<String,String> cookies;
	public static void main(String[] args) {
		TestMap tm = new TestMap();
		tm.setCookies();
		Set<String> set = cookies.keySet();
	for(String name:set) {
			System.out.println(name+"----->"+cookies.get(name));
		}
	}

	public void setCookies() {
		String[] s1 = {"name=sidney","password=12345","date=2012"};
		this.cookies = new HashMap<String,String>();
	for(String s2:s1) {
			String[] s3 = s2.split("=");
			System.out.println(s3[0]+"------"+s3[1]);
			this.cookies.put(s3[0],s3[1]);
		}
		//System.out.println(this.cookies.get("name"));
	}
}

输出如下:

name------sidney 

password------12345 

date------2012 

name----->sidney 

date----->2012 

password----->12345

你是不是在setCookie()外面使用 this.cookies.get("expires");来获取值?要是在外部的话,肯定是取不出来的,因为你的   this.cookies =  new   HashMap<String,String>()在内部赋的值
顶部