Package com.qq.open.weibo

Source Code of com.qq.open.weibo.WeiBoAddIdol

package com.qq.open.weibo;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;

import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.log4j.Logger;

import com.qq.open.common.OpenQqConstants;
import com.qq.open.common.OpenQqUtils;
import com.qq.open.common.json.JSONException;
import com.qq.open.common.json.JSONObject;
import com.qq.open.weibo.bean.param.WeiBoAddIdolParamBean;
import com.qq.open.weibo.bean.result.WeiBoAddIdolResultBean;


/**
* 收听腾讯微博上的用户
*
* @author HaoLiang
*
*/
public class WeiBoAddIdol {

  /** QQ互联工具类 */
  private OpenQqUtils oqu = new OpenQqUtils();
 
  /** 日志 */
  private Logger log = Logger.getLogger(WeiBoAddIdol.class);
 
  /**
   * 收听腾讯微博上的用户
   *
   * @param paramBean 参数
   * @return 接口返回数据
   * @throws JSONException
   * @throws IOException
   */
  public WeiBoAddIdolResultBean addIdol(WeiBoAddIdolParamBean paramBean) throws JSONException, IOException {
    // 日志
    log.info("收听腾讯微博上的用户 开始...");
   
    // 获取接口返回的数据
    String jsonData = oqu.doPost(OpenQqConstants.WEIBO_ADD_IDOL_URL, this.getInterfaceParam(paramBean));
   
    // 返回数据
    WeiBoAddIdolResultBean resultBean = this.jsonToBean(jsonData);
   
    // 日志
    log.info("收听腾讯微博上的用户 结束...");
   
    return resultBean;
  }
 
  /**
   * 获取接口地址
   *
   * @param paramBean 参数
   * @return 接口地址
   * @throws UnsupportedEncodingException
   */
  private MultipartEntity getInterfaceParam(WeiBoAddIdolParamBean paramBean) throws UnsupportedEncodingException {
    MultipartEntity reqEntity = new MultipartEntity();
   
    // AccessToken
    reqEntity.addPart("access_token", new StringBody(paramBean
        .getAccessToken()));

    // AppId
    reqEntity.addPart("oauth_consumer_key", new StringBody(oqu.getConfigValue("qq.appid")));

    // Openid
    reqEntity.addPart("openid", new StringBody(paramBean.getOpenId()));

    // 定义API返回的数据格式
    reqEntity.addPart("format", new StringBody("json"));
   
    // 要收听的用户的账户名列表
    if (oqu.isNotNull(paramBean.getName())) {
      reqEntity.addPart("name", new StringBody(paramBean.getName(), Charset.forName("UTF-8")));
    }
   
    // 要收听的用户的openid列表
    if (oqu.isNotNull(paramBean.getFopenIds())) {
      reqEntity.addPart("fopenids", new StringBody(paramBean.getFopenIds()));
    }
   
    return reqEntity;
  }
 

 
  /**
   * json数据转换成Bean数据
   *
   * @param paramBean 参数
   * @return Bean数据
   * @throws JSONException
   * @throws JSONException
   */
  private WeiBoAddIdolResultBean jsonToBean(String jsonData) throws JSONException {
   
    WeiBoAddIdolResultBean resultBean = new WeiBoAddIdolResultBean();
   
    JSONObject jsonObjRoot;
    try {
      jsonObjRoot = new JSONObject(jsonData);
     
      // 接口返回错误的场合
      if (jsonObjRoot.getInt("ret") != 0) {
        // 设置错误标识为真
        resultBean.setErrorFlg(true);
        // 设置错误编号
        resultBean.setErrorCode(jsonObjRoot.get("errcode").toString());
        // 设置错误内容
        resultBean.setErrorMes(jsonObjRoot.getString("msg"));
      }
    } catch (JSONException e) {
      e.printStackTrace();
      // 日志
      log.error("addIdol 异常,json数据是:" + jsonData);
      throw e;
    }
   
    return resultBean;
  }
 
}
TOP

Related Classes of com.qq.open.weibo.WeiBoAddIdol

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.