Diese Katze von Metadata Co., Ltd. Ruft die Katzen-API in Java auf.

1. Zuallererst

Es ist erforderlich, sich als Benutzer von Metadata Co., Ltd. zu registrieren und eine Benutzer-ID und ein Kennwort festzulegen.

Um sich als Benutzer zu registrieren, gehen Sie bitte zu hier.

2. Verknüpfung mit API

Ich war mir nicht sicher, wie ich die API verknüpfen sollte, aber ich habe verschiedene Dinge ausprobiert und mich für die folgenden Quellen entschieden. Es scheint über ** POST ** zu kommunizieren, und wenn Sie die Bilddaten im Bildteil festlegen, wird JSON erfolgreich zurückgegeben. Ich habe die zu sendenden Bilddaten in Byte erstellt. Möchten Sie diese also in die App importieren?

pom.xml


<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.10</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.5.10</version>
</dependency>

WhatCat.java


import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.HttpClientBuilder;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 *Was ist diese Katze? API.
 *
 * @author H.Aoshima
 * @version 1.0
 *
 */
public final class WhatCat {

    /**
     * URI.
     */
    private static final String SUGGETS_URL = "http://whatcat.ap.mextractr.net/api_query";

    /**
     *Lauf.
     * @param Bytes Bilddaten
     * @param Dateiname Name der Bilddatei
     * @param userName Benutzername
     * @param Passwort Passwort
     * @Ergebnis des Urteils zurückgeben
     * @löst eine ClientProtocolException aus. Client-Protokollausnahme
     * @löst eine IOException IO-Ausnahme aus
     */
    public static List<Object> exec(final byte[] bytes, final String fileName, final String userName, final String password)
            throws ClientProtocolException, IOException {

        //Rückgabewert
        List result = null;

        //Client-Erstellung
        final HttpClient client = HttpClientBuilder.create().build();
        //Zeichensatz beim Ersetzen durch ein Bytearray vor dem Codieren
        final Charset charset = StandardCharsets.UTF_8;
        //Die Zeichenfolge, die Sie codieren möchten
        final String source = userName + ":" + password;
        //Codiervorgang
        final String encoding = Base64.getEncoder().encodeToString(source.getBytes(charset));
        final HttpPost post = new HttpPost(WhatCat.SUGGETS_URL);
        post.setHeader("Authorization", "Basic " + encoding);

        //Legen Sie die Bildwerte in MultipartEntityBuilderi fest
        final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
        builder.addBinaryBody("image", bytes, ContentType.MULTIPART_FORM_DATA, fileName);

        post.setEntity(builder.build());

        //Erhalten Antwort
        final HttpResponse response = client.execute(post);
        final HttpEntity responseEntity = response.getEntity();

        if (response.getStatusLine().getStatusCode() == 200) {
            //Wert erhalten
            final InputStream is = responseEntity.getContent();
            final Reader r = new InputStreamReader(is, charset);

            ObjectMapper mapper = new ObjectMapper();
            result = mapper.readValue(r, new TypeReference<List<Object>>() {});
        }

        return result;
    }

}

Recommended Posts

Diese Katze von Metadata Co., Ltd. Ruft die Katzen-API in Java auf.
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Zabbix API in Java
Rufen Sie die Amazon Product Advertising API 5.0 (PA-API v5) in Java auf
Java-Geschichte in dieser Welt
Java Stream API in 5 Minuten
Aufrufen und Verwenden der API in Java (Spring Boot)
Java-Implementierung von Tri-Tree
Beispielcode zum Aufrufen der Yahoo! Local Search API in Java
Generieren Sie die CloudStack-API-URL in Java
Liste der in Java 9 hinzugefügten Mitglieder
Treffen Sie Zaims API (OAuth 1.0) in Java
Analysieren der COTOHA-API-Syntaxanalyse in Java
Rufen Sie die Java-API von TensorFlow von Scala aus auf
Liste der in Java 9 hinzugefügten Typen
JPA (Java Persistence API) in Eclipse
Implementierung einer ähnlichen Funktion in Java
Rufen Sie die Super-Methode in Java auf
Dies und das der Implementierung der zeitlichen Beurteilung von Daten in Java
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Implementierung von DBlayer in Java (RDB, MySQL)
Holen Sie sich das Ergebnis von POST in Java
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Studieren Sie Java 8 (Datums-API im Paket java.time)
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
Rufen Sie Java-Methoden aus JavaScript auf, das in Java ausgeführt wird
Versuchen Sie es mit der Stream-API in Java
Versuchen Sie es mit der JSON-Format-API in Java
Die Geschichte des Schreibens von Java in Emacs
Rufen Sie die visuelle Erkennung im Watson Java SDK auf
Rolle von JSP in Webanwendungen [Java]
Diskriminierung von Enum in Java 7 und höher