如何从邮递员的API中下载Excel(.xls)文件?


169

我有一个API端点和该API的授权令牌。

所述API用于.xls报告下载,如何.xls使用Postman(如果可能)查看下载的文件?

如果无法使用Postman,我还应该寻找其他编程方式吗?


Postman不是可以“编程”使用的应用程序-它是功能齐全的GUI。“使用POSTMAN查看下载的.xls文件”是什么意思?您要使用Postman呼叫端点吗?
nbokmans

4
@nbokmans我想在使用邮递员时下载后端提供的.xls文件,但我无法正确查看.xls文件,其所有unicode和特殊字符。我需要的是,如果邮递员除了可以使用其他编程方式触发api并在我的电脑上下载.xls文件之外,还可以通过其他方式进行编程
praxnet

@nbokmans感谢您的回复,它只是开始下载,没有给出任何位置。
praxnet

Answers:


375

尝试选择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


1

在邮递员中-您是否尝试过将标头元素“接受”添加为“ application / vnd.ms-excel”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.