如何使用带有Web代理的jackson

时间:2012-01-30 14:32:13

标签: java jackson

我正在编写类来使用Jackson从JSON Web服务中读取。以前,当从Web服务中读取时,我使用自定义Web浏览器类来设置某些连接信息,例如代理主机/端口/用户名/密码等,以及读取和连接超时值。

有没有办法在杰克逊本地做到这一点?例如。通过在配置中设置代理参数?

或者我应该恢复为将API响应作为字符串,然后使用Jackson解析它?

仅供参考,这是我正在使用的(简化)代码。

URL configUrl = new URL("http://my.webservice.com/api");
ConfigClass localConfig = mapper.readValue(configUrl, ConfigClass.class);

2 个答案:

答案 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();