APP server 使用httpclient调用第三方环信的server rest接口获取token

所需要jar包主要是apache httpclient 相关的jar以及操作json转换的jar

这些jar因为本公司的项目没有用maven所以要自己到apache官网下载并导入

当您申请了 AppKey 后,会得到一个xxxx#xxxx 格式的字符串,这个就是您的 AppKey,下文中用到的:

  • org_name 对应#前面部分
  • app_name 对应#后面部分

代码如下:

public class HttpClientUtil {

//apiURL就是访问第三方的URL
    private static String apiURL = "https://a1.easemob.com/{org_name}/{app_name}/token";
//创建应用的时候会对应生成
    private static String client_id = "";

    private static String client_secret = "";

    public static void main(String[] args) throws Exception {
        System.out.println("=========1获取token=========");
        String accessToken = getToken(apiURL, client_id, client_secret);// 获取token
        if (accessToken != null)
        System.out.println(accessToken);

    }

    public static String getToken(String url, String appid, String secret)
            throws Exception {
        String resultStr = null;
        DefaultHttpClient httpClient = new DefaultHttpClient();

        HttpPost post = new HttpPost(url);
        JsonParser jsonparer = new JsonParser();// 初始化解析json格式的对象
        // 接收参数json列表
        JSONObject jsonParam = new JSONObject();
        jsonParam.put("grant_type", "client_credentials");
        jsonParam.put("client_id", client_id);
        jsonParam.put("client_secret", client_secret);
        StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");// 解决中文乱码问题
        entity.setContentEncoding("UTF-8");
        entity.setContentType("application/json");
        post.setEntity(entity);

        // 请求结束,返回结果
        try {
            HttpResponse res = httpClient.execute(post);
            // 如果服务器成功地返回响应
            String responseContent = null; // 响应内容
            HttpEntity httpEntity = res.getEntity();
            responseContent = EntityUtils.toString(httpEntity, "UTF-8");
            JsonObject json = jsonparer.parse(responseContent)
                    .getAsJsonObject();
            if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                if (json.get("errcode") != null)
                    //resultStr = json.get("errcode").getAsString();
                } else {// 正常情况下
                    resultStr = json.get("access_token").getAsString();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭连接 ,释放资源
            httpClient.getConnectionManager().shutdown();
            return resultStr;
        }
    }

}





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值