当为空或空时,如何正确处理HTTP Accept标头?

时间:2018-01-03 16:02:32

标签: rest spring-mvc http http-headers spring-rest

我正在使用关于Spring Framework的{​​{1}}。

我有关于RestrequestGETAccept还是empty时的测试情况。

与以下内容密切相关:

我已阅读以下内容:

如果解决方案有效,请参阅以下选项:

  1. null
  2. 400 Bad Request
  3. 考虑406 Not Acceptable的{​​{1}}或emptynull而不是<{1}}
  4. 有三个选项,这就是这篇文章的原因。

    在两者之间,我认为更合适Accept,因为*/*特定。我的意思是媒体类型代表406 Not AcceptableAccept?它不是已知的媒体类型,例如emptynull

    第三种选择似乎不合逻辑,根据以下几点(根据我自己的观点,也许我错了或遗漏了某些东西):

    服务器xml的处理程序方法,可返回jsonGET,例如:

    XML

    客户 应该从头开始明确表示它会执行json并处理@GetMapping(path="/{id}", produces={MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE}) public @ResponseBody Persona findOneById(@PathVariable String id){ return personaService.findOneById(id); } request或根据{{​​1}}发送的responseXML

    因此,出于任何原因,如果发送的json具有Accept如何request(假设错误的编码),那么这是第三点({ {1}})我无法理解:&#34;让服务器返回任何媒体类型&#34 ;;即便如此,我们假设服务器返回request而客户端只能处理Accept,但当然empty如何*/*未指定XML开始。所以客户端一旦收到JSON就会收到异常,但是观察到服务器不必要地完成了工作

    因此:如何在空或空时正确处理HTTP Accept标头?

0 个答案:

没有答案