我正在编写类来使用Jackson从JSON Web服务中读取。以前,当从Web服务中读取时,我使用自定义Web浏览器类来设置某些连接信息,例如代理主机/端口/用户名/密码等,以及读取和连接超时值。
有没有办法在杰克逊本地做到这一点?例如。通过在配置中设置代理参数?
或者我应该恢复为将API响应作为字符串,然后使用Jackson解析它?
仅供参考,这是我正在使用的(简化)代码。
URL configUrl = new URL("http://my.webservice.com/api");
ConfigClass localConfig = mapper.readValue(configUrl, ConfigClass.class);
答案 0 :(得分:1)
我会将api响应检索为Reader(或InputStream),然后使用Jackson解析它。杰克逊只是在引擎盖下调用configUrl.openStream(),并且没有理由不自己这样做。
答案 1 :(得分:1)
我认为你应该做后者,代理支持尚未加入杰克逊。
另外,使用Proxy
类非常简单。
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8080));
URL url = new URL("URL");
HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy);
uc.connect();