How to download excel (.xls) file from API in post

2019-01-21 17:55发布

问题:

I am having an API-Endpoint and Authtoken for that API

the said API is for .XLS report download, how can i view the downloaded .xls file using (if possible) POSTMAN?

If it is not possible using postman what are the other programmatic ways I should be looking for?

回答1:

Try selecting "send and download" instead of "send" when you make the request. (the blue button)

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

"For binary response types, you should select “Send and download” which will let you save the response to your hard disk. You can then view it using the appropriate viewer."



回答2:

If the endpoint really is a direct link to the .xls file, you can try the following code to handle downloading:

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

All you should need to do is set the proper name for the auth token and fill it in.

Example usage:

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


回答3:

In postman - Have you tried adding the header element 'Accept' as 'application/vnd.ms-excel'