Wie lade ich eine Excel-Datei (.xls) von der API in Postman herunter?

168

Ich habe einen API-Endpunkt und ein Autorisierungstoken für diese API.

Die API dient zum .xlsHerunterladen von Berichten. Wie kann ich die heruntergeladene .xlsDatei mit (wenn möglich) Postman anzeigen ?

Wenn es mit Postman nicht möglich ist, nach welchen anderen programmatischen Möglichkeiten sollte ich suchen?

praxnet
quelle
Postman ist keine Anwendung, die Sie "programmgesteuert" verwenden können - es ist eine voll funktionsfähige GUI. Was meinst du mit "Anzeigen der heruntergeladenen XLS-Datei mit POSTMAN"? Möchten Sie mit Postman den Endpunkt anrufen?
Nbokmans
4
@nbokmans Ich möchte die vom Backend bereitgestellte XLS-Datei herunterladen, wenn ich Postbote verwende. Ich kann die XLS-Datei nicht richtig anzeigen, es sind alles Unicodes und Sonderzeichen. Was ich brauche ist, wenn es außer dem Postboten noch einen anderen programmatischen Weg gibt, um eine API
abzufeuern
@nbokmans Danke für die Antwort, es wird gerade heruntergeladen, es gibt keinen Ort an.
Praxnet

Antworten:

373

Versuchen Sie, send and downloadanstatt auszuwählen, sendwann Sie die Anfrage stellen. (der blaue Knopf)

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

"Für binäre Antworttypen sollten Sie auswählen, mit Send and downloadwelcher Sie die Antwort auf Ihrer Festplatte speichern können. Sie können sie dann mit dem entsprechenden Viewer anzeigen."

Jake
quelle
2
das ist definitiv nicht intuitiv - danke für den zeiger! Versucht, Antwort zu speichern, aber es wurde nur in Beispielen gespeichert, was nicht hilfreich war.
SliverNinja - MSFT
6

Wenn der Endpunkt wirklich ein direkter Link zur XLS-Datei ist, können Sie den folgenden Code zum Herunterladen verwenden:

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

Alles , was Sie sollten sich tun müssen , den richtigen Namen für die Auth - Token und füllen Sie ihn in gesetzt.

Anwendungsbeispiel:

download(new File("C:\\output.xls"), "http://www.website.com/endpoint");
nbokmans
quelle
1
Dieser Code funktioniert für mich. Wenn mein Endpunkt zu meiner Information kein direkter Link gewesen wäre, welche Änderung müsste ich im obigen Code-Snippet vornehmen?
Praxnet
1

In postman - Haben Sie versucht, das Header-Element 'Accept' als 'application / vnd.ms-excel' hinzuzufügen?

Jikku
quelle