Bagaimana cara mengunduh file excel (.xls) dari API di tukang pos?

169

Saya memiliki titik akhir API dan token Otorisasi untuk API itu.

API tersebut untuk .xlsunduhan laporan, bagaimana saya bisa melihat .xlsfile yang diunduh menggunakan (jika mungkin) tukang pos ?

Jika tidak mungkin menggunakan tukang pos apa cara terprogram lain yang harus saya cari?

praxnet
sumber
Tukang pos bukan aplikasi yang dapat Anda gunakan "secara terprogram" - ini adalah GUI berfitur lengkap. Apa yang Anda maksud dengan "melihat file .xls yang diunduh menggunakan POSTMAN"? Apakah Anda ingin melakukan panggilan ke titik akhir menggunakan Postman?
nbokmans
4
@nbokmans Saya ingin mengunduh file .xls yang disediakan oleh backend ketika saya menggunakan tukang pos, saya tidak dapat melihat file .xls dengan benar, semua unicodes dan karakter khusus. Yang saya butuhkan adalah, Jika ada cara terprogram lain selain tukang pos untuk menembakkan api dan mengunduh file .xls pada pc saya
praxnet
@nbokmans Terima kasih atas balasannya, ini baru mulai diunduh, tidak memberikan lokasi apa pun.
praxnet

Jawaban:

376

Coba pilih send and downloadalih-alih sendsaat Anda mengajukan permintaan. (tombol biru)

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

"Untuk jenis respons biner, Anda harus memilih Send and downloadyang akan membiarkan Anda menyimpan respons ke hard disk Anda. Anda kemudian dapat melihatnya menggunakan penampil yang sesuai."

Jake
sumber
2
ini jelas tidak intuitif - terima kasih untuk penunjuknya! Sudah Mencoba Simpan Respons tetapi hanya tersimpan di Contoh yang tidak membantu.
SliverNinja - MSFT
6

Jika titik akhir benar-benar merupakan tautan langsung ke file .xls, Anda dapat mencoba kode berikut untuk menangani pengunduhan:

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

Semua Anda harus perlu lakukan adalah mengatur nama yang tepat untuk token auth dan mengisinya.

Contoh penggunaan:

download(new File("C:\\output.xls"), "http://www.website.com/endpoint");
nbokmans
sumber
1
Kode ini berfungsi untuk saya, meskipun untuk info saya jika titik akhir saya bukan tautan langsung, perubahan apa yang harus saya lakukan dalam cuplikan kode di atas?
praxnet
1

Di tukang pos - Sudahkah Anda mencoba menambahkan elemen tajuk 'Terima' sebagai 'aplikasi / vnd.ms-excel'

jikku
sumber