public HTTPResult call(String name, Map<String, Object> param) {
		Map<String, Object> p = new HashMap<String, Object>();
		p.put("name", name);

		if (param == null) {
			param = new HashMap<String, Object>();
		}

		if (param.containsKey("no_cache")) {
			if (param.get("no_cache") != null) {
				p.put("no_cache", param.get("no_cache"));
			}
			param.remove("no_cache");
		}
		
		p.put("params", JSONValue.toJSONString(param));

		HTTPResult r = post(p);
		System.err.println(r.json);

		r.isOK = false;
		if (r.json != null) {
			if (r.getString("status").equals("ok")) {
				r.isOK = true;
			} else {
				r.errorMsg = r.getString("msg");
				r.errorCode = r.getString("code");
			}
		} else {
			r.errorMsg = "network error";
			r.errorCode = "network_error";
		}

		if (!r.isOK) {
			log.warn("Taobian API error:" + r.errorCode + ",msg:"
					+ r.errorMsg());
		}
		return r;
	}