您好我正在创建代理服务器,我需要在代理服务器中实现缓存。
缓存是一个散列图,其中URL是密钥,URL的字节数组将是值。
目前,当我尝试将字节数组写入客户端的输出流时,我遇到了问题。
try{
if(!myCache.containsKey(urladdr))
{
IOUtils.copy(serverInput,toClient);
byte[] byteArray = IOUtils.toByteArray(connection);
myCache.addToCache(urladdr, byteArray);
}
else{
toClient.write(myCache.getValue(urladdr));
System.out.println("got from cache");
}
}
所以基本上如果URL还没有在缓存中,我将使用IOUtils.copy加载页面,然后将url + byte数组添加到我的缓存中。
如果URL在我的缓存中,我将从hashmap获取URL的字节数组并写入客户端。这是我的程序卡住的地方,它只是没有将字节数组加载到客户端输出流中。
由于没有发送任何标题,这可能是一个问题吗? 帮助表示感谢