Comment télécharger le fichier Excel (.xls) à partir de l'API dans Postman?

169

J'ai un point de terminaison d'API et un jeton d'autorisation pour cette API.

L'API est destinée au .xlstéléchargement du rapport, comment puis-je afficher le .xlsfichier téléchargé en utilisant (si possible) Postman ?

S'il n'est pas possible d'utiliser Postman, quelles sont les autres méthodes programmatiques que je devrais rechercher?

Praxnet
la source
Postman n'est pas une application que vous pouvez utiliser "par programme" - c'est une interface graphique complète. Qu'entendez-vous par «visualiser le fichier .xls téléchargé à l'aide de POSTMAN»? Voulez-vous appeler le point final à l'aide de Postman?
nbokmans
4
@nbokmans Je veux télécharger le fichier .xls fourni par le backend lorsque j'utilise Postman, je ne peux pas afficher le fichier .xls correctement, ses tous les unicodes et caractères spéciaux. Ce dont j'ai besoin, c'est s'il existe un autre moyen de programmation en dehors du facteur pour déclencher une api et télécharger un fichier .xls sur mon PC
Praxnet
@nbokmans Merci pour la réponse, il commence juste le téléchargement, il ne donne aucun emplacement.
praxnet

Réponses:

376

Essayez de sélectionner send and downloadplutôt que sendlorsque vous faites la demande. (le bouton bleu)

https://www.getpostman.com/docs/responses

"Pour les types de réponses binaires, vous devez sélectionner celui Send and downloadqui vous permettra d'enregistrer la réponse sur votre disque dur. Vous pouvez ensuite l'afficher à l'aide de la visionneuse appropriée."

Jake
la source
2
ce n'est certainement pas intuitif - merci pour le pointeur! J'ai essayé d' enregistrer la réponse, mais elle a simplement été enregistrée dans Exemples, ce qui n'était pas utile.
SliverNinja - MSFT
6

Si le point de terminaison est vraiment un lien direct vers le fichier .xls, vous pouvez essayer le code suivant pour gérer le téléchargement:

public static boolean download(final File output, final String source) {
    try {
        if (!output.createNewFile()) {
            throw new RuntimeException("Could not create new file!");
        }
        URL url = new URL(source);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        // Comment in the code in the following line in case the endpoint redirects instead of it being a direct link
        // connection.setInstanceFollowRedirects(true);
        connection.setRequestProperty("AUTH-KEY-PROPERTY-NAME", "yourAuthKey");
        final ReadableByteChannel rbc = Channels.newChannel(connection.getInputStream());
        final FileOutputStream fos = new FileOutputStream(output);
        fos.getChannel().transferFrom(rbc, 0, 1 << 24);
        fos.close();
        return true;
    } catch (final Exception e) {
        e.printStackTrace();
    }
    return false;
}

Tout ce que vous devez besoin de faire est de définir le nom propre pour le jeton d'authentification et de le remplir.

Exemple d'utilisation:

download(new File("C:\\output.xls"), "http://www.website.com/endpoint");
nbokmans
la source
1
Ce code fonctionne pour moi, mais pour mes informations, si mon point de terminaison n'aurait pas été un lien direct, quel changement devrais-je faire dans l'extrait de code ci-dessus?
praxnet
1

Dans postman - Avez-vous essayé d'ajouter l'élément d'en-tête 'Accepter' comme 'application / vnd.ms-excel'

jikku
la source