问题标签 [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 回答
1539 浏览

java - Spring MVC return json only 406 with ContentNegotiationManagerFactoryBean

I want only JSON response to be turned for any request that is made to http://localhost:8090/home/home/home2 for a servlet context as "home".

The configuration that I have set is to return default as "JSON" response if there are no accept headers. I have also tried to set the accept type to "application/json" , which is not working.

The solution over at Spring MVC + JSON = 406 Not Acceptable is with a different approach of Messageconverter, while I am trying through ContentNegotiationManagerFactoryBean class.

The web.xml is as follows

The servlet-context.xml is as follows.

The java code is as follows:

0 投票
3 回答
395 浏览

c# - 自定义接受标头在 Windows Phone 8 上不起作用

我在可移植类库(针对 .NET 4.5 和 Windows Phone 8.1)中有一个类,它使用 HttpClient (System.Net.Http.HttpClient) 类将字符串发布到 Web 服务。该服务要求我在请求中设置Accept标头以指定 API 版本,如下所示:

我在课堂上这样尝试过:

它会抛出一个 FormatException 说明我的 Accept 标头无效。所以我尝试这样设置:

它仍然抛出 FormatException。我发现这个答案说服我尝试使用这样的TryAddWithoutValidation()方法:

最后,我没有收到 FormatException!当我从我的 .NET 4.5 单元/集成测试项目中调用它时,我的 post 方法有效。我得到了 200 和我期望的数据。但是,当我从 Windows Phone 8.1(或模拟器)调用相同的方法时,服务会响应并告诉我我在请求中指定的版本无效。

我不知道如何让 Fiddler 向我展示来自我的 Windows Phone 模拟器的流量,以查看实际请求的样子。我的猜测是永远不会添加 Accept 标头。我希望经验丰富的 Windows Phone 开发人员能够认识到我正在犯的一些明显错误......

0 投票
2 回答
771 浏览

spring - Spring Boot:添加新的 Extension-AcceptHeader 映射

在一个普通的 Spring 应用程序中,我有:

所以我可以做类似的事情:

然后调用:


当我使用 Spring Boot 执行此操作时,extends WebMvcConfigurationSupport会阻止所有自动配置。

那么如何使用 Spring Boot 轻松注册新的 Extension-Accept-Header 映射?

0 投票
1 回答
180 浏览

rest - HTTP 内容协商是否适用于错误消息?

如果客户端发送应用程序/xml 的 Accept 标头,任何错误消息的正文(例如 500)也应该是 xml 吗?还是 Accept 标头仅适用于 200 级响应?

0 投票
1 回答
813 浏览

java - 基于 Accept 标头仲裁 Jersey 端点:没有给出 Accept 标头时怎么办?

假设我有两个如下所示的端点:

Accept这对于根据客户端发送的标头来仲裁调用哪个方法非常有效。

我遇到的问题是,如果客户端Accept完全错过了标头,我(出于某种原因)会调用第二个方法,我希望它是第一个。

还有一个额外的复杂性,那就是它会自动输入到 Swagger 文档中,我不希望额外的 MIME 类型出现在文档中,所以我不希望(例如)添加*/*到第一个接受的类型方法。

(这是使用 Dropwizard 和 Jersey 1.x,尽管我仍然有兴趣听到基于 Jersey 2.x 的解决方案,我们可能很快就会升级到这些解决方案。)

0 投票
1 回答
327 浏览

c# - 在 C# 中的 MVC 应用程序中实现本地化所需的步骤

我需要在 MVC 应用程序中实现资源 (.resx) 消息的本地化,但一直未能这样做。

查看我正在遵循的步骤:

1.创建一个本地化项目并添加与您需要支持的语言一样多的资源 (.resx) 文件。以所有选定的语言添加要显示的消息。在 Visual Studio 的“访问修饰符”选项中选择“公共”。确保根据所需的约定命名资源文件,即默认语言为 MyResource.resx,法语本地化为 MyResource-fr.resx,罗马尼亚语本地化为 MyResource.ro,等等。

2.从http请求中检测并解析Accept-Language http头。选择具有最高“q”因子的那个,只要存在。如果不存在或所有 q 值都相同,则选择第一种接受的语言。

更新:我刚刚了解到(见@ Zealous评论)添加<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/>到 web.config 将完全一样,所以不需要手动工作)。

3.使应用程序控制器继承自基础控制器(也可以通过过滤器完成),根据最喜欢的方式,将 Thread.CurrentThread.CurrentCulture 和 Thread.CurrentThread.CurrentUICulture 的引用更改为动态创建的新实例接受的语言,从前面的步骤中提取。

4.将上一步中创建的本地化项目的引用添加到需要引用消息的项目中。引用消息时,只需引用要显示的消息的资源默认文件名“点”即可。在我们的示例中,它将是 MyResource.Welcome。

预期结果:在发送设置了 Accept-Language 为 'fr' 的 http 请求时,会收到带有“Bienvenue”的响应,而在将 Accept-Language 设置为 'en'(或添加多种语言并使用 q 因子)时,会收到一个回复“欢迎”。

不知何故,我的回复总是使用默认资源文件(在本例中为英语)。

我错过了什么或做错了什么?

0 投票
0 回答
640 浏览

fonts - 为字体添加压缩

我在 tools.pingdom.com 的速度测试中收到此警告:可压缩资源应具有“Vary: Accept-Encoding”标头

如何在我的网站上压缩此资源:http ://www.abrakadabra.fi/fonts/fontawesome-webfont.woff2 我从我的服务器本地提供这些字体。

0 投票
1 回答
277 浏览

json - 扩展 Illuminate\Http\Request 清除 Accept 标头

我已经扩展了这个Illuminate\Http\Request类并将它传递给我的控制器。

在我的控制器中,我Accept: application/json使用该$request->wantsJson()方法检查请求是否有标头。

如果我使用基Illuminate\Http\Request类,它工作得很好,但如果我使用我的扩展类,它说 Accept 标头为空。

控制器

这不起作用。如果我改为用MyRequest它的实例替换Illuminate\Http\Request它。如果我 var_dump $request->header('Accept'),则在使用 MyRequest 时为 NULL。

0 投票
1 回答
541 浏览

http - HTTP Accept 标头中的“+”是什么意思?

我怎么能理解这个记录:

我的意思是,这个“+”符号是标准化的(无论如何,我在规范中没有找到它),还是只是一个约定?

谢谢。

0 投票
1 回答
679 浏览

aws-api-gateway - 根据 Amazon AWS API Gateway 上的 Accept 标头参数返回不同的 MIME 类型

您能否解释一下如何设置 Amazon AWS API Gateway 以根据请求 HTTP Accept 标头返回不同的文档?

两个例子: