- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Spring Web MVC 并编写了一个 Controller ,该 Controller 应将二进制数据返回到显示 3D 内容的网页中的插件。这个插件使用 STK 文件作为它的模型,所以我已经设置了我的 webapp 来为 *.stk URLs 生成这种内容
springDispatcherServlet 设置为处理我的 web.xml 中的 *.stk 请求
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>*.stk</url-pattern>
</servlet-mapping>
我的 Controller 看起来像这样:
@Controller
@RequestMapping(value="/3dobject", produces="application/octet-stream")
public class Object3DController {
@Autowired
private DesignerService designerService;
@RequestMapping(value="/{article}.stk", method=RequestMethod.GET, headers="Accept: application/octet-stream")
public void getObject3DForArticle(HttpServletResponse response, @PathVariable String article) throws IOException {
response.setContentType("application/octet-stream");
Object3D object = designerService.get3DModelForArticleNumber(article, LanguageCode.NORWEGIAN);
byte[] content = object.getContent();
response.setContentLength(content.length);
IOUtils.write(content, response.getOutputStream());
}
}
当我尝试通过浏览器访问数据时,出现以下错误:
HTTP 状态 406 - 此请求标识的资源只能生成具有根据请求“接受” header Not Acceptable 特征的响应。
我已将我的应用程序部署到本地主机上的 tomcat 服务器。
对于让浏览器下载二进制数据我必须做什么有什么想法吗?
附言!我从 *.3do(3d 对象)更改为 *.stk。使用 3do 它按预期工作,但插件失败并出现错误(很难解释),所以我必须进行实验以验证 URL 扩展名是否重要...
最佳答案
RequestMapping.produces()
缩小请求范围,因此是
only mapped if the Accept matches one of these media types
因此您需要在插件的请求中设置相应的Accept header。这不能通过简单地通过在浏览器中键入 URL 来发出 HTTP GET 请求来完成。我发现对 Chrome 有用的一个插件是 Advanced REST Client .还有很多其他提供类似功能的。或者尝试使用 cURL
使用正确的 header 发出请求。
关于spring-mvc - Spring MVC 为 application/octet-stream 提供 HTTP 406,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16101016/
我正在使用 python Azure sdk。当文件上传时,其内容类型更改为 application/octet-stream。 我想设置其默认内容类型,例如 PNG 图像的 image/png。 我
我在计算字符串长度时遇到问题。我有以下字符串: 30 ctime=1460687405.982514823\n 其格式如下: 扩展 header 应包含一个或多个记录,每个记录的构造如下: “%d %
我有一个简单的视频文件上传表单。它可以在普通 PC 上运行,但是当从移动设备 (Android) 上传时,它会将文件 mime 类型发送为 application/octet-stream,文件 nu
目前,当我使用 shared access signature (SAS) Token 构建 URL 时,我遇到了 Azure 文件存储问题。 。文件将在浏览器中下载,但内容类型始终是应用程序/八位字
我有一个与 corba 相关的问题。 在我的 Java 应用程序中我使用typedef 序列数据; 现在我开始研究这个数据 vector 。如果我对 Corba 规范的理解是正确的序列将转换为 xs:
我希望能够将 ipv6 地址解析为八位字节。有没有类似下面的? IPAddress.Parse(address).GetAddressBytes()[0]; IPAddress.Parse(addre
我们使用以 CHAR(18) 字符集八位字节形式存储在表中的二进制值。 在 Firebird 2.0.4 中,我们使用 ASCII 作为默认数据库字符集和连接字符集。我们有一个可以生成所需数据的 UD
我正在调用imageServer并得到一个 x-genericbytedata-octet-stream 作为响应。所以我想知道我是否可以将其转换为可操作的某种格式,例如ndarray。 这就是我得到
我有一个第三端服务,它向我的 Django 应用程序发出带有文件的 POST 请求。要成功上传到 Django 应用程序,请求必须具有“multipart/form-data”内容类型,但内容类型在我
在将 Spring-MVC 应用程序部署到 Tomcat 服务器时,我遇到了一个问题:服务器一直使用 application/x-octet-stream 作为响应类型。因此,浏览器不会显示页面,而是
我有一个非常基本的问题: 我正在编写代码以使用 JSP 和 Servlet 下载 CSV 文件。我从互联网论坛上获得了代码并且工作正常,但我试图理解以下两行的重要性 response.setConte
如何在 C 语言中将 char 字符串编码为 Octet 字符串?例如,如果有: char *string = "245732473"; 我需要将此字符串编码为八位字节字符串吗?我怎样才能做到这一点?
我正在尝试从 http://api.openweathermap.org/data/2.5/forecast/daily?lat=35&lon=139&cnt=10&mode=json 接收 json
八位字节串和字符有什么区别?如何使用八位字节串?任何人都可以在 Octet 字符串上编写一个小的 C 程序吗?八位字节字符串如何存储在内存中? 最佳答案 标准(等等)使用“八位组”来明确声明他们谈论的
这就是我正在处理的事情。我们的一个程序有一个支持表格,用户可以使用它来请求支持。这个表单的作用是,它向 PHP 脚本执行 HTTP POST 请求,该脚本应该收集信息并将其转发到支持电子邮件地址。 P
我正在尝试通过以下方式使用数据 uri 下载文件: 问题是下载的文件总是命名为“Unknown”,无论我尝试使用什么文件名。这是给文件命名的正确方法吗?或者其他需要完成了吗? 最佳答案 这是解决方案
我正在使用 Postman 发送以下请求: 我的 Controller 看起来像这样: @RestController @RequestMapping(path = RestPath.CHALLENG
我不断收到这个警告 资源被解释为字体,但以MIME类型application / octet-stream传输:“ http://127.0.0.1:8080/assets/font/fontawes
我正在将消息从 Azure IoT 中心路由到 Blob 容器 ( Azure Storage as a routing endpoint )。发送到 IoT 中心的消息的内容类型为“applicat
我有一个 REST Controller : @RequestMapping(value = "greeting", method = RequestMethod.GET, produces = "a
我是一名优秀的程序员,十分优秀!