Upload image to API Zendesk in Java

21 Views Asked by At

I'm trying to upload an image to Zendesk API.

The upload is correct, but if the image is corrupted.

Here is my code. Did I miss something?

private static final String API_URL = ConfigB2CSugar.getApiZendeskUrl() + "uploads.json";

public static DocumentResponse uploadToZendesk(File fileToUpload, String fileName) throws IOException {
    CloseableHttpClient client = HttpClients.createDefault();
    DocumentResponse responseMap = new DocumentResponse();

    try {
        String mimeType = URLConnection.guessContentTypeFromName(fileToUpload.getName());

        HttpPost httpPost = new HttpPost(API_URL+"?filename="+fileName);

        HttpEntity entity = MultipartEntityBuilder.create()
                .addBinaryBody("file", fileToUpload)
                .build();
        httpPost.setEntity(entity);
        
        httpPost.addHeader("Authorization", "Basic " + ConfigB2CSugar.getAuthTokenZendesk());
        httpPost.addHeader("Content-Type", mimeType);

        // Ejecutar la solicitud y obtener la respuesta
        HttpResponse response = client.execute(httpPost);
        String jsonResponse = EntityUtils.toString(response.getEntity());

        // Imprimir el código de estado de la respuesta
        System.out.println("Status Code: " + response.getStatusLine().getStatusCode());

        // Analizar la respuesta JSON y devolverla
        return DocumentResponse.parseJsonToDocument(jsonResponse);
    } catch (Exception e) {
        System.out.println("Error al subir archivo.");
        System.err.println("Error: " + e.getMessage());
    } finally {
        // Cerrar el cliente HTTP
        client.close();
    }

    // Devolver la respuesta
    return responseMap;
}
0

There are 0 best solutions below