[JAVA] Sprechen Sie über das Hochladen von Dateien mithilfe der Slack-API mit Apache HttpPost

Der Stackoverflow-Artikel, den ich beim Hochladen einer Datei mit der Slack-API gefunden habe, war etwas unverdaulich, daher schreibe ich ihn auf. How to upload a file using Apache HttpPost Selbst wenn Sie wie oben schreiben, ist es 200 OK, aber "keine Dateidaten" Daher war der Datei-Upload nicht erfolgreich. Ich hatte diesen Artikel also im Voraus gelesen POST Multipart / Formulardaten mit HttpURLConnection Ich fragte mich, ob ich InputStream verwenden sollte, und als ich das Argument der Methode im offiziellen Dokument überprüfte, war es immer noch da. MultipartEntityBuilder

Das für die API verwendete Token wurde vorab injiziert.

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>

Referenzlink: https://github.com/salahsheikh/jpushbullet/blob/master/src/main/java/com/github/silk8192/jpushbullet/PushbulletClient.java

Recommended Posts

Sprechen Sie über das Hochladen von Dateien mithilfe der Slack-API mit Apache HttpPost
Informationen zur Apache Inference API
Kauen Sie über API
Sprechen Sie über das Hochladen von Dateien mithilfe der Slack-API mit Apache HttpPost
Über Gradles Kompilierung, API, Implementierung usw.
Informationen zur Apache Inference API
Laden Sie große Dateien mit Apache JMeter herunter
[Java] Behandeln Sie Excel-Dateien mit Apache POI