我正在尝试使用Java servlet构建一个xpi文件。如果我在servlet中使用以下代码将xpi作为zip返回-
response.setContentType("application/zip");
response.setHeader("Content-Disposition","inline;filename=xpitest.xpi;"); 上面的代码一切正常。我可以将文件保存到文件系统并安装它。
但是,如果我尝试返回具有以下标头和contenttype的文件-
response.setContentType("application/x-xpinstall");
response.setHeader("Content-Disposition","filename=xpitest.xpi;");在客户端,firefox识别出该文件是一个xpi包,并显示安装选项。但是,当我试图安装它时,我得到这个错误-“不是一个有效的安装包- 207”
有人能建议我在setContentType()和setHeader()中使用什么吗?
谢谢。
发布于 2009-11-11 12:57:34
点击"Add to Firefox“后,来自addons.mozilla.org的流量嗅探显示,您所需要的只是设置为application/x-xpinstall的Content-Type和正确的Content-Length。你可以尝试同样的方法。以下是报头:
HTTP/1.1 200 OK
Date: Wed, 11 Nov 2009 04:51:03 GMT
Server: Apache
Last-Modified: Thu, 05 Nov 2009 15:10:39 GMT
Accept-Ranges: bytes
Content-Length: 4248
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: application/x-xpinstall发布于 2009-11-11 17:59:28
这只是一个猜测,但是,由于您返回的是压缩后的应用程序,而不是.xpi,我想您必须使用.xpi/zip?如果.xpi本质上不是压缩的,那么压缩的.xpi本身就不是有效的。以未压缩的方式发送如何?
发布于 2009-11-12 02:28:47
您的第二个response Content-Disposition字段缺少inline关键字,这可能是一个原因?
同样,正如Murali建议的那样,您应该将Content-Length设置为一个实际值。
https://stackoverflow.com/questions/1713026
复制相似问题