A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/aelassas/wexflow/wiki/Java-Client below:

Java Client · aelassas/wexflow Wiki · GitHub

Here is a sample Java client WexflowClient.java:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class WexflowClient {

    private static final String BASE_URL = "http://localhost:8000/api/v1";
    private static final String USERNAME = "admin";
    private static final String PASSWORD = "wexflow2018";
    private static final int WORKFLOW_ID = 41;

    public static void main(String[] args) {
        try {
            String token = login(USERNAME, PASSWORD);
            String jobId = startWorkflow(token, WORKFLOW_ID);
            System.out.println("Workflow " + WORKFLOW_ID + " started successfully. Job ID: " + jobId);
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
            e.printStackTrace();
        }
    }

    private static String login(String username, String password) throws Exception {
        URL url = new URL(BASE_URL + "/login");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/json");
        conn.setDoOutput(true);

        String jsonInputString = String.format(
            "{\"username\":\"%s\",\"password\":\"%s\",\"stayConnected\":false}",
            username, password);

        try (OutputStream os = conn.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input);
        }

        int code = conn.getResponseCode();
        if (code != 200) {
            throw new RuntimeException("Login failed: HTTP " + code);
        }

        BufferedReader br = new BufferedReader(
            new InputStreamReader(conn.getInputStream(), "utf-8"));

        StringBuilder response = new StringBuilder();
        String responseLine;
        while ((responseLine = br.readLine()) != null) {
            response.append(responseLine.trim());
        }

        // Response JSON format: { "access_token": "..." }
        String json = response.toString();
        String token = parseAccessToken(json);
        if (token == null) {
            throw new RuntimeException("No access_token found in response");
        }
        return token;
    }

    private static String startWorkflow(String token, int workflowId) throws Exception {
        URL url = new URL(BASE_URL + "/start?w=" + workflowId);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        conn.setRequestMethod("POST");
        conn.setRequestProperty("Authorization", "Bearer " + token);
        conn.setDoOutput(true);

        int code = conn.getResponseCode();
        if (code != 200) {
            throw new RuntimeException("Start workflow failed: HTTP " + code);
        }

        BufferedReader br = new BufferedReader(
            new InputStreamReader(conn.getInputStream(), "utf-8"));

        StringBuilder response = new StringBuilder();
        String responseLine;
        while ((responseLine = br.readLine()) != null) {
            response.append(responseLine.trim());
        }

        return response.toString();
    }

    // Simple method to extract access_token from JSON response
    private static String parseAccessToken(String json) {
        // This is a naive parse, for production use a JSON library like Jackson or Gson
        String tokenKey = "\"access_token\":\"";
        int start = json.indexOf(tokenKey);
        if (start == -1) return null;
        start += tokenKey.length();
        int end = json.indexOf("\"", start);
        if (end == -1) return null;
        return json.substring(start, end);
    }
}

To run the client, use the following command:

javac WexflowClient.java
java WexflowClient

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4