Java之~用Https调用第三方极光推送,查询极光推送别名

调用极光的方法,详情请去极光推送官方文档查看。

https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device/#_4

一。写HttpsController类方便调用

package com.javajy.controller;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;


import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;

import org.apache.log4j.Logger;
import org.framework.frext.controller.common.GenericController;
import org.framework.frext.util.Ajax;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.javajy.util.HttpClientUtils;
import com.javajy.vo.Https;

import net.sf.json.JSONObject;
@Controller
@RequestMapping("/Https/")
public class HttpsController extends GenericController{
    private static Logger logger = Logger.getLogger(HttpsController.class);//日志方便打印
    private static final String URL = "https://device.jpush.cn";//极光访问URL
    private static final String APPKEY ="******";//极光用户名
    private static final String MASTERSECRET ="*********";//极光密码

     //查询别名(找不到统计项就是 null,否则为统计项的值。)
    @RequestMapping(value = "getAliases", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> getAliases(@RequestBody Https ht) {
        JSONObject response = null;
        try {
            StringBuilder url = new StringBuilder(URL).append("/v3/aliases/"+ht.getAlias_value());
            String authorValue = getBase64();
            Map<String, String> para = new HashMap<>();
            
            response = HttpClientUtils.doGet(url.toString(), authorValue, para);

/*            JSONObject jsonResponse = (JSONObject)response.get("error");
            String string2 = (String)jsonResponse.get("message");
            logger.info("---------"+string2);*/
        if (StringUtils.isNotEmpty((String) response.get("error"))) {
                logger.info("getAliases:url+params----" + url + para);
                return Ajax.buildErrorResult((String) response.get("error"));
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("getAliases:url+params----" + e);
        }
        return Ajax.getSuccessReturnMapWithData(response);
    }
    
    public static String getBase64(){
        Base64 base64 = new Base64();
        String base64Sign ="";
         String string  = APPKEY+":"+MASTERSECRET;
         try {
             base64Sign = base64.encodeToString(string.getBytes("UTF-8"));
             System.out.println(base64Sign);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
        return " Basic "+base64Sign;
    }

}

二。这是自定义的类用来传参数

package com.javajy.vo;

public class Https {
    private String token;
    private String alias_value;//别名值
    private String registration_id;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getAlias_value() {
        return alias_value;
    }

    public void setAlias_value(String alias_value) {
        this.alias_value = alias_value;
    }

    public String getRegistration_id() {
        return registration_id;
    }

    public void setRegistration_id(String registration_id) {
        this.registration_id = registration_id;
    }

}
三。方法中的doget,dopost方法,可查看我这篇文章调用

https://blog.csdn.net/haopingping_88/article/details/81136211

猜你喜欢

转载自blog.csdn.net/haopingping_88/article/details/81207628
今日推荐