Як завантажити файл excel (.xls) з API у листоноші?


169

У мене є кінцева точка API та маркер авторизації для цього API.

Згаданий API призначений для .xlsзавантаження звіту, як я можу переглянути завантажений .xlsфайл за допомогою (якщо можливо) листоноші ?

Якщо неможливо за допомогою Postman, які ще програмні способи мені слід шукати?


Поштальон - це не програма, якою ви можете користуватися «програмно» - це повнофункціональний графічний інтерфейс. Що ви маєте на увазі під "переглядом завантаженого файлу .xls за допомогою POSTMAN"? Ви хочете зателефонувати на кінцеву точку за допомогою Postman?
nbokmans

4
@nbokmans Я хочу завантажити .xls файл, наданий бекендом, коли я використовую листоношу, я не в змозі переглядати .xls файл належним чином, усі його унікоди та спеціальні символи. Що мені потрібно, якщо є якийсь інший програмний спосіб окрім листоноші для запуску api та завантаження .xls-файлу на моєму ПК
praxnet

@nbokmans Дякуємо за відповідь, він тільки починає завантажувати, він не дає жодного місця.
praxnet

Відповіді:


375

Спробуйте вибрати send and downloadзамість того, sendколи ви робите запит. (синя кнопка)

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

"Для типів бінарних відповідей слід вибрати, Send and downloadякий дозволить вам зберегти відповідь на жорсткому диску. Потім ви можете переглянути його за допомогою відповідного переглядача."


2
це точно не інтуїтивно - дякую за вказівник! Спробував зберегти відповідь, але це просто збережено в прикладах, які не були корисними.
SliverNinja - MSFT

6

Якщо кінцева точка дійсно є прямим посиланням на файл .xls, ви можете спробувати наступний код для обробки завантаження:

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

Все , що вам потрібно потрібно зробити , це встановити правильне ім'я для токен аутентифікації і заповнити його.

Приклад використання:

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

1
Цей код працює для мене, хоча для моєї інформації, якщо моя кінцева точка не була б прямим посиланням, що мені потрібно зробити в наведеному вище фрагменті коду?
praxnet


1

У листоноші - Ви намагалися додати елемент заголовка "Прийняти" як "application / vnd.ms-excel"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.