JAVA示例代码

package com.ksxing;

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;

/**
 * Created by examstar on 2018/8/1.
 */
public class KSXJWTUtil {
    /**
     * 客户唯一标识符,由考试星提供,需替换成自己的appId
     */
    private static final int appId = 123456;
    /**
     * 用于加密jwt,由考试星提供,需替换成自己的appKey
     */
    private static final String appKey = "debae3071b7d48818fe51a1fbc1b1113";

    /**
     * 生成jwtInfo
     *
     * @param actionId
     * @return
     */
    private static String getJWTInfo(String actionId) {
        String jwtInfo = null;
        try {
            jwtInfo = Jwts.builder()
                    .setHeaderParam("alg", "HS256")
                    .setHeaderParam("typ", "JWT")
                    .claim("exp", System.currentTimeMillis() + 1000 * 10)
                    .claim("action_id", actionId)
                    .signWith(
                            SignatureAlgorithm.HS256,
                            appKey.getBytes(StandardCharsets.UTF_8.toString())
                    )
                    .compact();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return jwtInfo;
    }

    /**
     * 获取post请求地址
     *
     * @param actionId
     * @return
     */
    public static String getPostUrl(String actionId) {
        /**
         * 考试星域名
         */
        String domainUrl = "https://api.kaoshixing.com";
        String postUrl = String.format("%s/api/company/data/%d/?jwt=%s", domainUrl, appId, getJWTInfo(actionId));
        return postUrl;
    }
}

package com.ksxing;

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.nio.charset.StandardCharsets;

/**
 * Created by examstar on 2018/8/1.
 */
public class KSXPostUtil {
    public static String sendPost(String url, String body) {
        String responseContent = null;
        try {
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(url);
            httpPost.addHeader("Content-Type", "application/json");
            httpPost.setEntity(new StringEntity(body, StandardCharsets.UTF_8.toString()));
            CloseableHttpResponse response = httpClient.execute(httpPost);
            HttpEntity entity = response.getEntity();
            responseContent = EntityUtils.toString(entity, StandardCharsets.UTF_8.toString());
            response.close();
            httpClient.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return responseContent;
    }
}


package com.ksxing;


import net.sf.json.JSONObject;

/**
 * Created by examstar on 2018/8/1.
 */
public class KSXPostUtilTest {
    public static void main(String[] args) {
        String postUrl = KSXJWTUtil.getPostUrl("201");
        JSONObject json = new JSONObject();
        json.put("user_id", "ksx001");
        json.put("user_name", "考试星测试");
        json.put("role", "staff");
        json.put("department", "总部");
        System.out.println(KSXPostUtil.sendPost(postUrl, json.toString()));
    }
}