package hprose.exam.client; import hprose.client.HproseHttpClient; import hprose.common.HproseContext; import hprose.common.HproseFilter; import java.nio.ByteBuffer; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; class LogFilter implements HproseFilter { private static final Logger logger = Logger.getLogger(LogFilter.class.getName()); @Override public ByteBuffer inputFilter(ByteBuffer data, HproseContext context) { logger.log(Level.INFO, context.get("httpHeader").toString()); return data; } @Override public ByteBuffer outputFilter(ByteBuffer data, HproseContext context) { Map<String, List<String>> header = new HashMap<>(); header.put("Test", Arrays.asList("Hello Hprose")); context.set("httpHeader", header); return data; } } public class ClientExam11 { public static void main(String[] args) throws Throwable { HproseHttpClient client = new HproseHttpClient(); client.useService("http://localhost:8084/examserver/Methods"); client.addFilter(new LogFilter()); System.out.println(client.invoke("ex1_getId")); System.out.println(client.invoke("ex2_getId")); } }