Come scaricare il file Excel (.xls) dall'API in postman?


169

Sto avendo un endpoint API e un token di autorizzazione per quell'API.

Detta API è per il .xlsdownload di report, come posso visualizzare il .xlsfile scaricato usando (se possibile) Postman ?

Se non è possibile utilizzare Postman quali sono gli altri modi programmatici che dovrei cercare?


Postman non è un'applicazione che puoi usare "a livello di codice", è una GUI completa. Cosa intendi con "visualizzazione del file .xls scaricato usando POSTMAN"? Vuoi effettuare una chiamata all'endpoint utilizzando Postman?
nbokmans,

4
@nbokmans Voglio scaricare il file .xls fornito dal backend quando utilizzo postman, non riesco a visualizzare correttamente il file .xls, sono tutti unicode e caratteri speciali. Quello di cui ho bisogno è, se c'è un altro modo programmatico oltre al postino per sparare un api e scaricare il file .xls sul mio pc
praxnet

@nbokmans Grazie per la risposta, inizia il download, non fornisce alcuna posizione.
praxnet,

Risposte:


376

Prova a selezionare send and downloadinvece di sendquando fai la richiesta. (il pulsante blu)

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

"Per i tipi di risposta binaria, devi selezionare Send and downloadquale ti permetterà di salvare la risposta sul tuo disco rigido. Puoi quindi visualizzarla usando il visualizzatore appropriato."


2
questo non è assolutamente intuitivo - grazie per il puntatore! Ho provato a salvare la risposta ma è stato salvato in esempi che non sono stati utili.
SliverNinja - MSFT

6

Se l'endpoint è davvero un collegamento diretto al file .xls, puoi provare il codice seguente per gestire il download:

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;
}

Tutto quello che dovresti fare è impostare il nome corretto per il token di autenticazione e compilarlo.

Esempio di utilizzo:

download(new File("C:\\output.xls"), "http://www.website.com/endpoint");

1
Questo codice funziona per me, sebbene per le mie informazioni se il mio endpoint non fosse stato un collegamento diretto, quale modifica dovrei fare nello snippet di codice sopra?
praxnet,


1

In postman - Hai provato ad aggiungere l'elemento header 'Accept' come 'application / vnd.ms-excel'

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.