Как скачать файл Excel (.xls) из API в почтальоне?

169

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

Указанный API предназначен для .xlsзагрузки отчетов, как я могу просмотреть загруженный .xlsфайл, используя (если возможно) Postman ?

Если это невозможно с помощью Postman, какие другие программные способы мне следует искать?

praxnet
источник
Почтальон - это не приложение, которое вы можете использовать «программно» - это полнофункциональный графический интерфейс. Что вы подразумеваете под «просмотром загруженного файла .xls с помощью POSTMAN»? Вы хотите позвонить на конечную точку, используя Почтальон?
nbokmans
4
@nbokmans Я хочу загрузить файл .xls, предоставленный бэкэндом, когда я использую почтальон, я не могу правильно просмотреть файл .xls, все его юникоды и специальные символы. Что мне нужно, так это если есть какой-то другой программный способ, кроме почтальона, для
запуска
@nbokmans Спасибо за ответ, он только начинает загрузку, он не определяет местоположение.
Praxnet

Ответы:

376

Попробуйте выбрать 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");
nbokmans
источник
1
Этот код работает для меня, хотя для моей информации, если бы моей конечной точкой не была бы прямая ссылка, какие изменения мне нужно было бы сделать в приведенном выше фрагменте кода?
Praxnet
1

В почтальоне - Вы пытались добавить элемент заголовка «Принять» как «application / vnd.ms-excel»

jikku
источник