问题标签 [http-accept-header]

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 回答
697 浏览

json-ld - JSON-LD 请求的配置文件参数的用法

JSON-LD 的文档提到,客户端可以向Accept标头提供配置文件参数,可用于控制表示。它定义了请求压缩扩展扁平化JSON-LD 文档的三个默认值。它还说

如果给出了配置文件参数,服务器should返回一个文档,该文档尊重列表中服务器识别的配置文件。

但是,它没有解释服务器是否应该遵循任何特定规则。是否完全由服务器决定自定义配置文件 URI 的行为?是否有任何关于该主题的讨论?

下面的例子是否正确?

示例 1

客户端请求

并且服务器返回压缩文档http://schema.orgas @context

示例 2

客户端请求

并且服务器返回压缩文档http://schema.orgas @context

0 投票
1 回答
2024 浏览

http - 如何解释多个 Accept-* 标头

我对RFC 2616的阅读没有回答我的问题:

服务器应该如何解释多个AcceptAccept-EncodingAccept-Language等标头?

当然,这通常应该是一种罕见的情况,但我认为每个 HTTP 客户端实际上都在做它应该做的事情。

想象一个 HTTP 请求包括以下内容:

服务器应该:

  1. 结合结果,得出有效的Accept-Language: en, pt?
  2. 只尊重第一个(en)?
  3. 只尊重最后一个(pt)?
  4. 抛出一个嘶嘶声(返回 400 状态,也许?)

选项#1 对我来说似乎是最自然的,最有可能是客户的意思,即使不是客户的意思,也最不可能完全打破期望。

但是对于如何处理这些情况,是否有任何实际规则(最好由 RFC 指定)?

0 投票
1 回答
2651 浏览

http - 如何指定我可以接受 Accept 标头中的所有媒体类型?

我想发送一个 HTTP 请求,并且我想在Accept标头中指定我可以接受所有媒体类型,以下是否正确:

0 投票
1 回答
3279 浏览

xml - ASPNetCore API 内容协商不起作用

我正在尝试设置我的 api,以便根据 Accept 标头使用 XML 或 JSON 进行响应。

我正在学习 Shawn W 的教程:https ://wildermuth.com/2016/03/16/Content_Negotiation_in_ASP_NET_Core

它说要添加一个包:"Microsoft.AspNet.Mvc.Formatters.Xml": "6.0.0-rc1-final"

但我找不到它,所以安装了: Microsoft.AspNetCore.Mvc.Formatters.Xml

他说要将此添加到启动中的配置服务部分:

然后浏览器会自动接收 XML,因为默认情况下它使用 Accept: text/xml 标头,我没有在浏览器中或使用邮递员获得 XML。无论我将 Accept 标头设置为什么,我都会得到 Json。

我试过戴上[Produces("application/xml")]我的控制器,它返回一个空白的 200 OK 页面。

如何让我的 api 默认返回 Json,或者如果 Accept 存在则返回 XML?

编辑1:

我将其用作我的 http 获取代码:

我正在尝试返回这个 DTO:

编辑2:

如果我换掉这个:

并替换为以下内容:

然后放在[Produces("application/xml")]我的 get 方法之上,我得到一个 406 Not Acceptable 响应。

0 投票
2 回答
7534 浏览

java - 对 REST API 进行 GET 调用,Accept 为 text/csv,content-Type 为 application/json。回复应该是什么格式?

对 REST API 进行 GET 调用,Accept 为 text/csv,content-Type 为 application/json。回复应该是什么格式?

响应应该是 JSON 格式还是 CSV 格式?

0 投票
1 回答
5312 浏览

java - 如何配置 spring 以忽略无效的 Accept 标头?

我正在使用 spring 来构建我的网络应用程序。

在我的自定义WebMvcConfigurationSupport类中,我设置了基本ContentNegotiationConfigurer如下:

我无法设置ignoreAcceptHeadertrue,因为我的一些客户依赖此标头进行响应。

但是,当我尝试使用无效Accept标头Accept: :*/*(请注意额外的冒号)访问我的 API 时,spring 会重定向到错误页面/error,并显示以下日志:

我可以改变这种行为吗?我想Accept完全忽略标题而不是跳转到错误页面。那可能吗?

0 投票
1 回答
372 浏览

ruby - 在 ruby​​ rest-client 中接受标头我相信会导致返回错误代码 404

我将以下请求传递给 ruby​​ rest-client gem;

Gem 版本 ruby​​ 版本 2.3.3 rest-client 2.0.2

我已将相同的请求传递给 Postman,并且得到了预期的响应。

我还有一个 API 的 v1 只接受“:json”,这也按预期响应,所以我的感觉是它是围绕

这导致了问题,但我不确定到底是什么。我的感觉是,如果回复有问题,那么邮递员也会抱怨。

这里的文档https://github.com/rest-client/rest-client 默认请求标头:rest-client sets

以防我通过/(尽管我假设 * 表示输入您需要的内容)但这返回了 v1 响应。

方法、url 和 verify_ssl 在多个其他请求中工作。所以我认为那里也没有任何问题。

任何人,有什么建议吗?谢谢

0 投票
0 回答
281 浏览

angular - Header中的q=0.8;application/json;q=0.9是什么意思

我对这个SO answer有疑问。解决方案是简单地包含

作为请求标头中的“接受” 。但是这个表达是什么意思呢?我可以看到分号被使用了两次,并且逗号不用于分隔任何不同的媒体类型,如此所述。

当我将此添加到我的代码中时,我的应用程序可以在 Firefox 上运行,但出现 406 Not-Acceptable 错误。是否有任何可能的原因(我的返回类型是 JSON)。希望对我的两个疑问有任何想法。

0 投票
2 回答
3631 浏览

asp.net - Asp.Net Web API 的默认“Accept”标头值

如果Accept在对 Asp.Net Web API 的请求中省略了标头,服务器将返回(415) Unsupported Media Type

application/json当请求的标头中不包含Accept值时,我正在寻找一种方法来强制 API 采用默认返回类型(在我的情况下为)。

经过大量的阅读和搜索,我不确定这是否可能?

0 投票
1 回答
599 浏览

java - 版本控制作为springboot中Accept标头的一部分

作为开发的一部分,我想维护两个不同版本的响应。我使用产生关键字作为请求映射的一部分来区分实现。

当版本 = 1.0 时,应调用第一个实现的方法,当版本 2.0 时,应调用第二个实现的方法。

但在我的情况下,总是调用较低版本的方法。

**

**