Package com.qq.open.qzone.blog

Source Code of com.qq.open.qzone.blog.QqAddOneBlog

package com.qq.open.qzone.blog;

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.qzone.bean.param.QqAddBlogParamBean;
import com.qq.open.qzone.bean.result.QqAddBlogResultBean;

/**
* 登录用户发表一篇新日志
*
* @author HaoLiang
* @version 0.1.1
*
*/
public class QqAddOneBlog {
 
  /** 日志 */
  private Logger log = Logger.getLogger(QqAddOneBlog.class);
 
  /** QQ互联工具类 */
  private  OpenQqUtils oqu = new OpenQqUtils();

  /**
   * 登录用户发表一篇新日志
   *
   * @param paramBean 参数
   * @return 接口返回的数据
   * @throws JSONException
   * @throws IOException
   */
  public QqAddBlogResultBean addOneBlog(QqAddBlogParamBean paramBean) throws JSONException, IOException {
   
    // 日志
    log.info("登录用户发表一篇新日志 开始....");

    // 获取接口的参数
    MultipartEntity reqEntity = this.getPostParam(paramBean);
   
    // 接口返回的json数据
    String jsonData = oqu.doPost(OpenQqConstants.QQ_ADD_ONE_BLOG_URL, reqEntity);
   
    // 返回接口返回的数据
    QqAddBlogResultBean resultBean = this.jsonToBean(jsonData);
   
    // 日志
    log.info("登录用户发表一篇新日志 结束....");
   
    return resultBean;
  }

 
  /**
   * 获取接口的参数
   *
   * @param addBlogBean 参数
   * @return 接口参数
   * @throws UnsupportedEncodingException
   */
  private MultipartEntity getPostParam(QqAddBlogParamBean addBlogBean)
      throws UnsupportedEncodingException {
    MultipartEntity reqEntity = new MultipartEntity();

    // AccessToken
    reqEntity.addPart("access_token", new StringBody(addBlogBean
        .getAccessToken()));

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

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

    // 定义API返回的数据格式
    reqEntity.addPart("format", new StringBody("json"));

    // 日志标题
    reqEntity.addPart("title", new StringBody(addBlogBean.getTitle(),
        Charset.forName("UTF-8")));

    // 日志内容
    reqEntity.addPart("content", new StringBody(addBlogBean.getContent(),
        Charset.forName("UTF-8")));

    return reqEntity;
  }
 
 
  /**
   * 把接口返回的json数据转换成JavaBean
   *
   * @param jsonData 接口返回的数据
   * @return JavaBean数据
   * @throws JSONException
   * @throws JSONException
   */
  private QqAddBlogResultBean jsonToBean(String jsonData) throws JSONException {
    // 接口返回数据Bean
    QqAddBlogResultBean resultBean = new QqAddBlogResultBean();
   
    // 接口返回的数据json
    JSONObject jsonObjRoot;
    try {
      jsonObjRoot = new JSONObject(jsonData);
     
      // 接口返回错误的场合
      if (jsonObjRoot.getInt("ret") != 0) {
        // 设置错误标识为真
        resultBean.setErrorFlg(true);
       
        // 设置错误编号
        resultBean.setErrorCode(jsonObjRoot.get("ret").toString());
       
        // 设置错误信息
        resultBean.setErrorMes(jsonObjRoot.getString("msg"));
      } else {
        resultBean.setUrl(jsonObjRoot.get("url").toString());
      }
    } catch (JSONException e) {
      e.printStackTrace();
      // 把错误的json数据写入Log
      log.error("addOneBlog异常,json数据是:" + jsonData);
      throw e;
    }
   
   
    return resultBean;
  }
}
TOP

Related Classes of com.qq.open.qzone.blog.QqAddOneBlog

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.