调用示例

最后更新:2026-09-22 15:58:39

将 {设备IP} 替换为实际 IP(与通信约定一致),端口默认 8555,不要写死某一台机器的地址。

1. cURL

HOST="http://{设备IP}:8555"

curl -X POST "$HOST/api/app_print" \
  -H "Content-Type: application/json" \
  -d "{\"CMD_ID\":\"00\",\"TYPE\":1}"

curl -X POST "$HOST/api/app_print" \
  -H "Content-Type: application/json" \
  -d "{\"CMD_ID\":\"01\",\"IMG_URL\":\"http://192.168.1.20:8080/jobs/a.png\",\"WIDTH\":100}"

curl -X POST "$HOST/api/app_print" \
  -H "Content-Type: application/json" \
  -d "{\"CMD_ID\":\"02\",\"TYPE\":1,\"MOVE\":10}"

curl -X POST "$HOST/api/app_print" \
  -H "Content-Type: application/json" \
  -d "{\"CMD_ID\":\"03\"}"

curl -X POST "$HOST/api/app_print" \
  -H "Content-Type: application/json" \
  -d "{\"CMD_ID\":\"04\"}"

2. C

using System.Net.Http.Json;

var host = Environment.GetEnvironmentVariable("PRINTER_HOST")
           ?? "http://{设备IP}:8555";
var http = new HttpClient { BaseAddress = new Uri(host) };

async Task<JsonElement> Call(object body) {
    var resp = await http.PostAsJsonAsync("/api/app_print", body);
    resp.EnsureSuccessStatusCode();
    var json = await resp.Content.ReadFromJsonAsync<JsonElement>();
    if (json.GetProperty("code").GetInt32() != 0)
        throw new Exception(json.GetProperty("msg").GetString());
    return json;
}

await Call(new { CMD_ID = "00", TYPE = 1 });
await Call(new { CMD_ID = "01", IMG_URL = "http://192.168.1.20:8080/jobs/a.png", WIDTH = 100 });
await Call(new { CMD_ID = "02", TYPE = 1, MOVE = 10 });
await Call(new { CMD_ID = "03" });
await Call(new { CMD_ID = "04" });

3. Java

Java 11+ java.net.http.HttpClient。将环境变量 PRINTER_HOST 设为 http://实际IP:8555,或把占位符换成设备 IP。

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

String host = System.getenv().getOrDefault("PRINTER_HOST", "http://{设备IP}:8555");
HttpClient http = HttpClient.newHttpClient();

String call(String jsonBody) throws Exception {
    HttpRequest req = HttpRequest.newBuilder()
            .uri(URI.create(host + "/api/app_print"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
            .build();
    HttpResponse<String> resp = http.send(req, HttpResponse.BodyHandlers.ofString());
    if (resp.statusCode() / 100 != 2)
        throw new RuntimeException("HTTP " + resp.statusCode() + " " + resp.body());
    String body = resp.body();
    if (!body.contains("\"code\":0") && !body.contains("\"code\": 0"))
        throw new RuntimeException(body);
    return body;
}

call("{\"CMD_ID\":\"00\",\"TYPE\":1}");
call("{\"CMD_ID\":\"01\",\"IMG_URL\":\"http://192.168.1.20:8080/jobs/a.png\",\"WIDTH\":100}");
call("{\"CMD_ID\":\"02\",\"TYPE\":1,\"MOVE\":10}");
call("{\"CMD_ID\":\"03\"}");
call("{\"CMD_ID\":\"04\"}");