Essayez d'utiliser l'implémentation de la classe RestClient Test de JobScheduler REST-API-Java-
Enregistrez-le sous le nom de fichier source /tmp/kaeru/RestTest.java.
https://qiita.com/yatabekaeru/items/1eda657e5a24189fbcdf
https://qiita.com/yatabekaeru/items/b8f03cccfb8b904efe99
/tmp/kaeru/RestTest.java
package kaeru;
/**
 *Classe de client pour faire des requêtes REST (pour les tests)
 *
 * @author S.Yatabe
 */
import javax.ws.rs.core.MediaType;
import com.sun.jersey.api.client.Client;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class RestTest {
    public static void main(String[] args) {
        //Chaîne de caractères à définir dans le corps de la requête
        String bodyStr = "";
        //Rest-Jeton d'accès émis par l'API
        String autKey = "";
        //Jason Mapper
        ObjectMapper mapper = null;
        //Pour Jason Perth
        JsonNode root = null;
        //Client d'instance pour l'authentification de base
        RestClient client = new RestClient( "root", "root" );
        //Rest-Effectuez d'abord l'authentification de base pour émettre le jeton d'accès de l'API
        String uri = "http://localhost:4446/joc/api/security/login"; // specify URI
        //Exécution de la demande après
        String data = client.post( uri, bodyStr, MediaType.APPLICATION_JSON_TYPE, null );
        try {
            //Génération JsonParser
            mapper = new ObjectMapper();
            root   = mapper.readTree(data);
            //Obtenir un jeton d'accès
            autKey = root.get( "accessToken" ).asText();
            System.out.println("*****"+autKey);
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch ( Exception e){
            e.printStackTrace();
        }
        //Définir le jeton d'accès émis et se reposer-Exécuter une requête avec l'API
        //Obtenir des informations sur la liste des commandes JobScheduler
        uri = "http://localhost:4446/joc/api/orders/"; // specify URI
        //Générer le corps de la requête
        StringBuilder bodyStrBuffer = new StringBuilder();
        bodyStrBuffer.append(" { \"jobschedulerId\": \"scheduler\" }" );
        bodyStr = bodyStrBuffer.toString();
        //Instance une version du client qui intègre AccessToken dans HeadeField
        client = new RestClient( null, null );
        //Exécuter une requête POST
        data = client.post( uri, bodyStr, MediaType.APPLICATION_JSON_TYPE, autKey );
        System.out.println( data );
        //Analyse facile des données au format Json avec structure hiérarchique
        try {
            //Génération JsonParser
            mapper = new ObjectMapper();
            root = mapper.readTree( data );
            //Variable qui stocke les données de retour au format Json
            String job     = "";
            String path    = "";
            String orderId = "";
            String pState  = "";
            String nextStartTime = "";
            //Analyser hiérarchiquement le nœud des commandes
            for ( JsonNode n : root.get("orders") ) {
                    job            = n.get( "job"     ).asText();
                    path           = n.get( "path"    ).asText();
                    orderId        = n.get( "orderId" ).asText();
                    pState         = n.get( "processingState" ).get( "_text" ).asText();
                    nextStartTime  = "";
                    if ( n.get( "nextStartTime" ) != null ){
                        nextStartTime = n.get( "nextStartTime" ).asText();
                    }
                    //Sortie de résultat
                    System.out.println( "[orderId]: " +orderId+ " [job]: " +job+ " [path]: "
                     +path+ " [status]: "+pState+ " [nextStart]: "+nextStartTime );
                }
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch ( Exception e){
            e.printStackTrace();
        }
    }
}
        Recommended Posts