package com.googlecode.mycontainer.commons.httpclient; import com.googlecode.mycontainer.commons.json.JsonHandler; public class JsonWebRequest { private final WebRequest request; public JsonWebRequest(WebRequest request) { this.request = request; } public WebRequest getRequest() { return request; } public void addParameter(String name, Object value) { String format = JsonHandler.instance().format(value); request.addParameter(name, format); } public <T> T invoke(Class<T> clazz) { WebResponse response = request.invoke(); try { Integer code = response.getCode(); if (code < 200 || code > 299) { throw new RuntimeException("http error: " + code); } T ret = (T) response.getJsonProtocol().parse(clazz); return ret; } finally { response.close(); } } public Object invoke() { return invoke(null); } }