public MessagePublishResult publishMessage(String accessToken, String message,
    		String url,String filename,Map<String,String> params)
    {
    	MessagePublishResult result = new MessagePublishResult();
        Map<String,String>data = new HashMap<String,String>();
        data.put("status" , message + ' ' + url);
        data.put("access_token" , accessToken);
        String resp = null;
        if (filename != null) {
        	Map<String,String> file = new HashMap<String,String>();
        	file.put("pic", filename);
            resp = this.response(HTTPClientUtil.POST_METHOD, SINA_PUBLISH_MESSAGE_WITH_PIC,
                data, null, file);
        } else {
            resp = this.response(HTTPClientUtil.POST_METHOD, SINA_PUBLISH_MESSAGE_TEXT, data, null, null);
        }
        if (resp != null) {
        	Object obj = JSON.parse(resp);
    		JSONObject msg = (JSONObject)obj;
    		int errorCode = msg.getIntValue("error_code");
            if (errorCode >0) {
                result.setRv(errorCode);
                result.setErrmsg(msg.getString("error"));
            } else {
                result.setRv(ERROR_SUCCESS);
            }
        } else {
            result.setRv(ERROR_NETWORK_CALL);
        }
        return result;
    }