问题标签 [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.
json-ld - JSON-LD 请求的配置文件参数的用法
JSON-LD 的文档提到,客户端可以向Accept
标头提供配置文件参数,可用于控制表示。它定义了请求压缩、扩展或扁平化JSON-LD 文档的三个默认值。它还说
如果给出了配置文件参数,服务器
should
返回一个文档,该文档尊重列表中服务器识别的配置文件。
但是,它没有解释服务器是否应该遵循任何特定规则。是否完全由服务器决定自定义配置文件 URI 的行为?是否有任何关于该主题的讨论?
下面的例子是否正确?
示例 1
客户端请求
并且服务器返回压缩文档http://schema.org
as @context
?
示例 2
客户端请求
并且服务器返回压缩文档http://schema.org
as @context
?
http - 如何解释多个 Accept-* 标头
我对RFC 2616的阅读没有回答我的问题:
服务器应该如何解释多个Accept、Accept-Encoding、Accept-Language等标头?
当然,这通常应该是一种罕见的情况,但我认为每个 HTTP 客户端实际上都在做它应该做的事情。
想象一个 HTTP 请求包括以下内容:
服务器应该:
- 结合结果,得出有效的
Accept-Language: en, pt
? - 只尊重第一个(
en
)? - 只尊重最后一个(
pt
)? - 抛出一个嘶嘶声(返回 400 状态,也许?)
选项#1 对我来说似乎是最自然的,最有可能是客户的意思,即使不是客户的意思,也最不可能完全打破期望。
但是对于如何处理这些情况,是否有任何实际规则(最好由 RFC 指定)?
http - 如何指定我可以接受 Accept 标头中的所有媒体类型?
我想发送一个 HTTP 请求,并且我想在Accept标头中指定我可以接受所有媒体类型,以下是否正确:
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 响应。
java - 对 REST API 进行 GET 调用,Accept 为 text/csv,content-Type 为 application/json。回复应该是什么格式?
对 REST API 进行 GET 调用,Accept 为 text/csv,content-Type 为 application/json。回复应该是什么格式?
响应应该是 JSON 格式还是 CSV 格式?
java - 如何配置 spring 以忽略无效的 Accept 标头?
我正在使用 spring 来构建我的网络应用程序。
在我的自定义WebMvcConfigurationSupport
类中,我设置了基本ContentNegotiationConfigurer
如下:
我无法设置ignoreAcceptHeader
为true
,因为我的一些客户依赖此标头进行响应。
但是,当我尝试使用无效Accept
标头Accept: :*/*
(请注意额外的冒号)访问我的 API 时,spring 会重定向到错误页面/error
,并显示以下日志:
我可以改变这种行为吗?我想Accept
完全忽略标题而不是跳转到错误页面。那可能吗?
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 在多个其他请求中工作。所以我认为那里也没有任何问题。
任何人,有什么建议吗?谢谢
asp.net - Asp.Net Web API 的默认“Accept”标头值
如果Accept
在对 Asp.Net Web API 的请求中省略了标头,服务器将返回(415) Unsupported Media Type
application/json
当请求的标头中不包含Accept
值时,我正在寻找一种方法来强制 API 采用默认返回类型(在我的情况下为)。
经过大量的阅读和搜索,我不确定这是否可能?
java - 版本控制作为springboot中Accept标头的一部分
作为开发的一部分,我想维护两个不同版本的响应。我使用产生关键字作为请求映射的一部分来区分实现。
当版本 = 1.0 时,应调用第一个实现的方法,当版本 2.0 时,应调用第二个实现的方法。
但在我的情况下,总是调用较低版本的方法。
**
**