Làm cách nào để tải xuống tệp excel (.xls) từ API trong postman?


168

Tôi đang có một điểm cuối API và mã thông báo ủy quyền cho API đó.

API đã nói là để .xlstải xuống báo cáo, làm cách nào tôi có thể xem .xlstệp đã tải xuống bằng cách sử dụng (nếu có thể) Postman ?

Nếu không thể sử dụng Postman, những cách lập trình khác mà tôi nên tìm kiếm là gì?


Người đưa thư không phải là một ứng dụng mà bạn có thể sử dụng "lập trình" - đó là một GUI đầy đủ tính năng. Bạn có ý nghĩa gì khi "xem tệp .xls đã tải xuống bằng POSTMAN"? Bạn có muốn thực hiện cuộc gọi đến điểm cuối bằng Postman không?
nbokmans

4
@nbokmans Tôi muốn tải xuống tệp .xls được cung cấp bởi phụ trợ khi tôi sử dụng người đưa thư, tôi không thể xem tệp .xls đúng cách, tất cả các ký tự và ký tự đặc biệt. Những gì tôi cần là, Nếu có bất kỳ cách lập trình nào khác ngoài người đưa thư để bắn api và tải xuống tệp .xls trên máy tính của tôi
Praxnet

@nbokmans Cảm ơn bạn đã trả lời, nó chỉ bắt đầu tải xuống, nó không cung cấp bất kỳ vị trí nào.
Praxnet

Câu trả lời:


373

Hãy thử chọn send and downloadthay vì sendkhi bạn thực hiện yêu cầu. (nút màu xanh)

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

"Đối với các loại phản hồi nhị phân, bạn nên chọn Send and downloadloại sẽ cho phép bạn lưu phản hồi vào đĩa cứng. Sau đó, bạn có thể xem nó bằng trình xem phù hợp."


2
Điều này chắc chắn không trực quan - cảm ơn con trỏ! Đã thử Lưu Phản hồi nhưng nó chỉ lưu vào các Ví dụ không hữu ích.
SliverNinja - MSFT

6

Nếu điểm cuối thực sự là một liên kết trực tiếp đến tệp .xls, bạn có thể thử đoạn mã sau để xử lý việc tải xuống:

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

Tất cả các bạn nên cần làm là thiết lập tên thích hợp cho token auth và điền nó trong.

Ví dụ sử dụng:

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

1
Mã này hoạt động với tôi, mặc dù đối với thông tin của tôi nếu điểm cuối của tôi không phải là liên kết trực tiếp, tôi cần thay đổi gì trong đoạn mã trên?
Praxnet


1

Trong người đưa thư - Bạn đã thử thêm phần tử tiêu đề 'Chấp nhận' là 'application / vnd.ms-excel'

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.