Accept Header在HTTP GET请求中对二进制结果进行编码

时间:2017-01-21 10:48:18

标签: java java-ee jersey resteasy

我的API为GET请求返回Excel(xslx)文件。如果"接受"标头存在,二进制结果被编码/损坏。我可以使用fiddler发送请求,并且需要最少的Headers,一切正常。如果我像浏览器那样添加一个Accept Header:

    elem.bind("click", function (e) {
        //get object here?
    });

结果变大(8kb而不是4kb)并且似乎以某种方式编码。 Fiddler检测到这种编码并要求对其进行解码。解码后,结果再次有效。当我使用chrome浏览器时,它会下载较大的(8kb)文件,而不是解码,因此会损坏。

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

我尝试返回一个文件,一个InputStream和一个字节数组,但它并没有改变它。

我也看过了 Input and Output binary streams using JERSEY?

我没有任何想法,任何想法?

0 个答案:

没有答案