จะดาวน์โหลดไฟล์ excel (.xls) จาก API ในบุรุษไปรษณีย์ได้อย่างไร


170

ฉันมีปลายทาง API และโทเค็นการอนุญาตสำหรับ API นั้น

API ดังกล่าวสำหรับ.xlsดาวน์โหลดรายงานฉันจะดู.xlsไฟล์ที่ดาวน์โหลดโดยใช้ (ถ้าเป็นไปได้) บุรุษไปรษณีย์ได้อย่างไร

หากไม่สามารถใช้บุรุษไปรษณีย์ได้ฉันควรมองหาวิธีอื่นใดในการเขียนโปรแกรมอย่างไร


บุรุษไปรษณีย์ไม่ใช่แอปพลิเคชันที่คุณสามารถใช้ "แบบเป็นโปรแกรม" - เป็น GUI ที่มีคุณสมบัติครบถ้วน คุณหมายถึงอะไรโดย "ดูไฟล์. xls ที่ดาวน์โหลดโดยใช้ POSTMAN" คุณต้องการโทรไปยังจุดปลายทางโดยใช้บุรุษไปรษณีย์หรือไม่?
nbokmans

4
@nbokmans ฉันต้องการดาวน์โหลดไฟล์. xls ที่จัดทำโดยแบ็กเอนด์เมื่อฉันใช้บุรุษไปรษณีย์ฉันไม่สามารถดูไฟล์. xls ได้อย่างถูกต้องมันเป็นยูนิโค้ดและอักขระพิเศษทั้งหมด สิ่งที่ฉันต้องการก็คือถ้ามีวิธีการเขียนโปรแกรมอื่น ๆ ที่นอกเหนือจากบุรุษไปรษณีย์สำหรับยิง API และดาวน์โหลดไฟล์ .xls บนเครื่องพีซีของฉัน
praxnet

@nbokmans ขอบคุณสำหรับการตอบกลับมันเพิ่งเริ่มดาวน์โหลดมันไม่ได้ให้ตำแหน่งใด ๆ
praxnet

คำตอบ:


378

ลองเลือก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

6

คุณสามารถบันทึกการตอบสนอง (pdf, doc ฯลฯ .. ) โดยตัวเลือกทางด้านขวาของการตอบสนองในบุรุษไปรษณีย์ตรวจสอบภาพนี้ บุรุษไปรษณีย์บันทึกการตอบสนอง

สำหรับรายละเอียดเพิ่มเติมตรวจสอบสิ่งนี้

https://learning.getpostman.com/docs/postman/sending_api_requests/responses/


1

ในบุรุษไปรษณีย์ - คุณได้ลองเพิ่มองค์ประกอบส่วนหัว 'ยอมรับ' เป็น 'application / vnd.ms-excel'

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.