private ResponseCore baseControl(Map<String, String> opt) {
        StringBuilder content = new StringBuilder();
        String resource = "channel";
        if (opt.containsKey(CHANNEL_ID) && opt.get(CHANNEL_ID)!=null) {
            resource = opt.get(CHANNEL_ID);
            opt.remove(CHANNEL_ID);
        }
        
        String host = opt.get(HOST);
        opt.remove(HOST);
        
        String url = "http://" + host + "/rest/2.0/" + PRODUCT + "/";
        url += resource;
        HttpMethod httpMethod = HttpMethod.HTTP_POST;
        String sign = genSign(httpMethod.toString(), url, opt);
        opt.put(SIGN, sign);
        
        Set<String> keys  = opt.keySet();
        for (String key : keys) {
            try {
                //            try {
                ////                key = new URLCodec("utf8").encode(key);
                ////                String v = new URLCodec("utf8").encode(opt.get(key));
                //                content.append(key).append("=").append(opt.get(key)).append("&");
                //            } catch (EncoderException ex) {
                //                Logger.getLogger(Channel.class.getName()).log(Level.SEVERE, null, ex);
                //            }
                String v = URLEncoder.encode(opt.get(key), "utf8");
                content.append(key).append("=").append(v).append("&");
            } catch (UnsupportedEncodingException ex) {
                Logger.getLogger(Channel.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        String postContent = content.toString();
        postContent = postContent.substring(0, postContent.length()-1);
        logger.info("content = " + postContent);
        logger.info("url = " + url);
        
        RequestCore request = new RequestCore(url);
        Map<String, String> headers = new HashMap<String, String>();
        headers.put("Content-Type", "application/x-www-form-urlencoded");
        headers.put("User-Agent", "Baidu Channel Service Javasdk Client");
        Set<String> headerKeySet = headers.keySet();
        for (String headerKey : headerKeySet) {
            String headerValue = headers.get(headerKey);
            request.addHeader(headerKey, headerValue);
        }
        request.setMethod(httpMethod);
        request.setBody(postContent);
        request.setConnectionOption(connOption);
        request.sendRequest();
        
        return new ResponseCore(request.getResponseHeader(), 
                request.getResponseBody(),
                request.getResponseCode());
    }