L'article de stackoverflow que j'ai trouvé en essayant de télécharger un fichier avec l'API Slack était un peu indigeste, je vais donc l'écrire. How to upload a file using Apache HttpPost Même si vous écrivez comme ci-dessus, ce sera 200 OK, mais "pas de données de fichier" Par conséquent, le téléchargement du fichier n'a pas réussi. J'avais lu cet article à l'avance, donc POST multipart / form-data avec HttpURLConnection Je me suis demandé si je devais utiliser InputStream, et quand j'ai vérifié l'argument de la méthode dans le document officiel, il était toujours là. MultipartEntityBuilder
Le jeton utilisé pour l'API a été pré-injecté.
public String post(File file) {
CloseableHttpClient client = HttpClientBuilder.create()
.build();
HttpEntity requestEntity=null;
try {
requestEntity = MultipartEntityBuilder.create()
.addTextBody("token", token)
.addTextBody("filetype", "jpg")
.addBinaryBody("file", new FileInputStream(file),ContentType.IMAGE_JPEG,"graph")
.build();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
HttpPost post = new HttpPost(URL);
String result = null;
try {
post.setEntity(requestEntity);
HttpResponse response = client.execute(post);
logger.info("Status: {}", response.getStatusLine());
result = collectResponse(response);
} catch (IOException e) {
logger.error("While posting", e);
}
return result;
}
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.1</version>
</dependency>
Lien de référence: https://github.com/salahsheikh/jpushbullet/blob/master/src/main/java/com/github/silk8192/jpushbullet/PushbulletClient.java
Recommended Posts