2016-08-16 12 views
60

Tôi đang có API-Endpoint và Authtoken cho APILàm cách nào để tải xuống tệp excel (.xls) từ API trong người đưa thư?

API được nêu là dành cho tải xuống báo cáo .XLS, làm cách nào tôi có thể xem tệp .xls đã tải xuống bằng (nếu có thể) POSTMAN?

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

+0

Người viết bài 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ó ý 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 do backend cung cấp 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 unicodes và ký tự đặc biệt của nó. Những gì tôi cần là, Nếu có bất kỳ cách nào khác có lập trình ngoài postman để bắn một api và tải về tập tin .xls trên máy tính của tôi – prasshant

+0

Đó vẫn chưa đủ thông tin - điểm cuối có cung cấp cho bạn url để tải xuống tệp từ OR không thực sự bắt đầu tải xuống? ví dụ. nếu bạn truy cập điểm cuối, bạn có nhận được json/xml/bất kỳ dữ liệu nào cho bạn biết vị trí của tệp hay không hoặc trực tiếp bắt đầu tải xuống không? – nbokmans

Trả lời

132

Thử chọn "gửi và tải xuống" thay vì "gửi" khi 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 ứng nhị phân, bạn nên chọn‘Gửi và tải’sẽ cho phép bạn lưu các phản ứng vào đĩa cứng của bạn. Sau đó bạn có thể xem nó bằng cách sử dụng người xem thích hợp. "

+0

điều này chắc chắn không trực quan - cảm ơn con trỏ! Đã cố gắng ** Lưu phản hồi ** nhưng nó chỉ được lưu vào ** Ví dụ ** không hữu ích. – SliverNinja

4

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

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ả bạn nên cần làm là thiết lập tên thích hợp cho auth token và điền nó trong việc sử dụng

Ví dụ:.

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

Cảm ơn bạn đã trả lời – prasshant

+0

Mã này hoạt động cho tôi, mặc dù thông tin của tôi nếu điểm cuối của tôi không có liên kết trực tiếp, tôi sẽ cần thay đổi gì trong đoạn mã trên? – prasshant

0

trong đưa thư - các bạn đã thử thêm các yếu tố tiêu đề ' Chấp nhận 'as' application/vnd.ms-excel '

Các vấn đề liên quan