问题标签 [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.
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:
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 开发人员能够认识到我正在犯的一些明显错误......
spring - Spring Boot:添加新的 Extension-AcceptHeader 映射
在一个普通的 Spring 应用程序中,我有:
所以我可以做类似的事情:
然后调用:
当我使用 Spring Boot 执行此操作时,extends WebMvcConfigurationSupport
会阻止所有自动配置。
那么如何使用 Spring Boot 轻松注册新的 Extension-Accept-Header 映射?
rest - HTTP 内容协商是否适用于错误消息?
如果客户端发送应用程序/xml 的 Accept 标头,任何错误消息的正文(例如 500)也应该是 xml 吗?还是 Accept 标头仅适用于 200 级响应?
java - 基于 Accept 标头仲裁 Jersey 端点:没有给出 Accept 标头时怎么办?
假设我有两个如下所示的端点:
Accept
这对于根据客户端发送的标头来仲裁调用哪个方法非常有效。
我遇到的问题是,如果客户端Accept
完全错过了标头,我(出于某种原因)会调用第二个方法,我希望它是第一个。
还有一个额外的复杂性,那就是它会自动输入到 Swagger 文档中,我不希望额外的 MIME 类型出现在文档中,所以我不希望(例如)添加*/*
到第一个接受的类型方法。
(这是使用 Dropwizard 和 Jersey 1.x,尽管我仍然有兴趣听到基于 Jersey 2.x 的解决方案,我们可能很快就会升级到这些解决方案。)
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 因子)时,会收到一个回复“欢迎”。
不知何故,我的回复总是使用默认资源文件(在本例中为英语)。
我错过了什么或做错了什么?
fonts - 为字体添加压缩
我在 tools.pingdom.com 的速度测试中收到此警告:可压缩资源应具有“Vary: Accept-Encoding”标头
如何在我的网站上压缩此资源:http ://www.abrakadabra.fi/fonts/fontawesome-webfont.woff2 我从我的服务器本地提供这些字体。
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。
http - HTTP Accept 标头中的“+”是什么意思?
我怎么能理解这个记录:
我的意思是,这个“+”符号是标准化的(无论如何,我在规范中没有找到它),还是只是一个约定?
谢谢。
aws-api-gateway - 根据 Amazon AWS API Gateway 上的 Accept 标头参数返回不同的 MIME 类型
您能否解释一下如何设置 Amazon AWS API Gateway 以根据请求 HTTP Accept 标头返回不同的文档?
两个例子:
curl --request GET ' http://api.sample.com/v1/hello ' --header '接受:文本/HTML'
/li>curl --request GET ' http://api.sample.com/v1/hello ' --header '接受:应用程序/JSON'
/li>