问题标签 [content-negotiation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
906 浏览

xml - spring mvc 3中的xml问题

请参阅我的以下 4 个简单示例,其中 2 个适用于 xml,另外 2 个不适用。




在两个不能生成xml的例子中,是否可以配置spring使其工作?

0 投票
1 回答
208 浏览

http - 如何发现 HTTP POST 服务允许的内容类型?

我正在为OpenTox webservices编写一个客户端,但是他们提供的一些服务对某些 MIME 类型有可选的支持,只有一些强制性的,例如这个Dataset service。所以我需要动态地发现特定运行服务支持哪些内容类型......

现在,对于 GET 服务,我可以使用“Accepts”HTTP 标头,当我发布内容时,我可以使用“Content-type”来设置我发送的格式。但我宁愿不默认试错,因为这些数据集可能很大。因此,我想预先知道我可以使用的最佳 MIME 类型。

如何使用 POST 服务执行内容协商?我正在使用Apache HttpClient,但这对于答案并不重要。

0 投票
1 回答
609 浏览

design-patterns - GUI、BLL 或 DTO 中的 JSON/XML 输出?

我正在使用内容协商,因此根据请求的标头,我提供 JSON/XML 输出。现在我想知道提供此功能的最佳位置是什么。

Info: BLL= 业务逻辑层
DTO= 数据传输对象
DAL= 数据访问层

DTO 的伪代码示例

BLL 的伪代码示例

1) 在带有 BLL 对象的 GUI 中:将 DTO 结果从 BLL 转换为 JSON/XML
2) 在 BLL 中:类似于... getObjectJSON() -> 将 DTO 输入转换并返回为 JSON 格式
3)在 DTO 中:行为类似于... toJSON() toXML() 类似于 toString()
4) 或只有 1 个属性的额外 DTO (json/xml)
5) 其他?...

*我个人认为 (1) 将逻辑排除在 GUI 之外的原因是错误的,(4) 拥有像 WebJsonExampleDTO 和只有一个属性的 WebXmlExampleDTO 这样的额外 DTO 似乎有点矫枉过正

0 投票
2 回答
656 浏览

json - 如何禁用内容协商并始终从 WCF 数据服务返回 JSON?

假设我有一个北风数据库,我使用 ADO.NET 实体数据模型,它是从数据库中的表自动生成的。然后我添加了一个继承自 DataService 的新 WCF 数据服务。当我启动运行服务的 Web 应用程序时,我可以请求如下数据: http://machine/Northwind.svc/Orders

这将以 atom/xml 格式从订单表返回所有订单。问题是我不想要 XML。我想要 JSON。我想我在我的应用程序中尝试了各种设置(web.config)和属性,但我仍然得到 XML。无论。当我使用提琴手并将请求标头更改为接受 JSON 时,我只能获取 JSON。

我不喜欢内容协商的概念。我希望始终以 JSON 格式返回数据。我怎样才能做到这一点?

请记住,我没有创建任何模型对象,它们是根据数据库表和关系自动创建的。

0 投票
0 回答
492 浏览

.htaccess - 如何使用 htaccess 进行内容协商?

为了使内容可以通过同一链接获得,即使文件扩展名已更改,URI 也不应更改。所以我决定使用内容协商和 htaccess 来实现这一点。我在网上搜索,但我发现的只是如何实现这个特定于 php 的。在我的站点中,我不仅有 php,还有 html、图像和 javascript 文件。我如何仅通过 htaccess 使用内容协商?

0 投票
2 回答
2354 浏览

java - 我的 Spring-MVC ContentNegotiatingViewResolver 设置是否正确?如何为不受支持的媒体类型发送 404 错误?

我不知道这对于这个网站是否是一个有效的问题,但我想知道是否有人对 ContentNegotiatingViewResolver 有经验的人可以查看一下,如果我设置正确并帮助我发送 404 消息,请告诉我。

我想做的是将所有没有扩展名的url默认为HTML表示(在我的例子中是freemarker视图)。我想接受附加了“.json”的url来渲染json。这似乎适用于Firefox,即和chrome。我猜它适用于其他浏览器?我确保禁用了接受标头,因为它是一个邪恶的功能,并不像文档所说的那样真正起作用。

我尝试使用“.stuff”访问 url,只是为了看看会发生什么,并且使用我的配置,会出现一个空白屏幕。这可以接受吗?有什么方法可以发送 404 错误吗?

还有什么我可能没有正确配置的吗?

0 投票
1 回答
886 浏览

rest - Grails 的内容协商如何处理对立的类型?

Grails 支持来自 3 个不同来源的内容协商:

  1. 接受标头
  2. 请求参数(格式)
  3. URI 扩展

问题是,当它从多个地方获取内容信息时,尤其是当它们彼此不一致时,它会做什么?

例如,如果 Grails 收到如下请求会发生什么:

Accept 标头将解析为 xml,URI 扩展将解析为 html,而参数将解析为 json。

这会做什么:

0 投票
2 回答
299 浏览

grails - 有没有更简单的方法在 Grails 中进行内容协商响应?

根据 Grails 用户指南中的内容,根据内容协商发送不同内容格式的推荐方法withFormat是使用块:

但是,我希望我的所有控制器方法的响应都可以做到这一点。withFormat有没有比在每个内容返回操作结束时简单地复制粘贴块更好的方法来获得这种行为?

0 投票
3 回答
496 浏览

security - Spring MVC 3 内容协商限制为支持它的操作

我在我的 Spring MVC 3 应用程序中配置了内容协商,如下所示:

这很好用——我的所有视图都将呈现为带有“普通”视图模板的 html 视图,或者根据“接受”标头呈现为视图模型数据的 JSON 或 XML 转储。

但是,这对我来说似乎有点安全漏洞。我的一些操作是 API 样式的操作,并且在 HTML、JSON 或 XML 中合法可用。但是,某些视图仅适用于 HTML。我真的不希望最终用户能够通过将“.json”添加到 url 来查看所有视图数据。

有没有办法在 Spring MVC 中进行内容协商,但仅限于明确选择加入的操作?我可以设置一个控制器注释@RespondsTo("xml", "json")吗?

0 投票
1 回答
313 浏览

apache - 使用 .jar 作为类型映射文件

我真的很想如何使用 '.jar"-Files 作为类型映射文件,而不是使用Content Negotiation的标准 ".var"-files 。

好吧,这是我的配置:

...运行良好并按预期从子文件夹交付foo.var

将文件重命名foo.varfoo.jar并将配置更改为AddHandler type-map .jar不起作用,这会foo.jar立即从根目录传递。