Il est nécessaire de s'inscrire en tant qu'utilisateur de Metadata Co., Ltd. et de définir un ID utilisateur et un mot de passe.
Pour vous inscrire en tant qu'utilisateur, veuillez vous rendre sur ici.
Je ne savais pas comment lier l'API, mais j'ai essayé diverses choses et me suis installé sur les sources suivantes. Il semble communiquer avec ** POST **, et si vous définissez les données d'image dans la partie image, JSON sera renvoyé avec succès. J'ai fait en sorte que les données d'image soient envoyées en Byte, alors souhaitez-vous les importer dans l'application?
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;
/**
*Quel est ce chat? 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";
/**
*Courir.
* @param octets données d'image
* @param fileName Nom du fichier image
* @param userName Nom d'utilisateur
* @mot de passe param mot de passe
* @retourne le résultat du jugement
* @jette une exception de protocole ClientProtocolException Client
* @lève une exception IOException IO
*/
public static List<Object> exec(final byte[] bytes, final String fileName, final String userName, final String password)
throws ClientProtocolException, IOException {
//Valeur de retour
List result = null;
//Création de client
final HttpClient client = HttpClientBuilder.create().build();
//Jeu de caractères lors du remplacement par un tableau d'octets avant l'encodage
final Charset charset = StandardCharsets.UTF_8;
//La chaîne que vous souhaitez encoder
final String source = userName + ":" + password;
//Processus d'encodage
final String encoding = Base64.getEncoder().encodeToString(source.getBytes(charset));
final HttpPost post = new HttpPost(WhatCat.SUGGETS_URL);
post.setHeader("Authorization", "Basic " + encoding);
//Définir la valeur de l'image dans MultipartEntityBuilderi
final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("image", bytes, ContentType.MULTIPART_FORM_DATA, fileName);
post.setEntity(builder.build());
//Avoir une réponse
final HttpResponse response = client.execute(post);
final HttpEntity responseEntity = response.getEntity();
if (response.getStatusLine().getStatusCode() == 200) {
//Obtenez de la valeur
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