【问题标题】:Returning different statuscode in cXML must I also send HTTP Statuscode back?在 cXML 中返回不同的状态码我还必须发回 HTTP 状态码吗?
【发布时间】:2017-04-13 05:07:38
【问题描述】:

在 CXML 中,如果发件人凭据不正确,那么在我的 cxml 中,我将此作为响应发送回 cXML 帖子的发件人:

<Status code="401" text="Unauthorized ">Credentials provided in the Request (the Sender element) were not recognized by the server.</Status>

根据 cXML,这是正确的。但是我还需要将我的 HTTP 状态码更改为 401 还是 200 OK 就足够了?

【问题讨论】:

  • 谁是客户(接收者),他们是否也期待成功案例的&lt;Status&gt; 响应?
  • @selbie 是的,他们这样做了,是客户通过 cxml 发送订单

标签: java cxml


【解决方案1】:

正如cxml User Guide cxml 错误处理中提到的那样,它位于 http(传输层)错误消息之上,您可以将它们视为功能错误,因此您仍然使用 HTTP 200 进行回复

3.1.9.1 状态

由于 cXML 在大多数情况下都位于 HTTP 之上,因此很多错误(例如 HTTP 404/Not Found)由传输处理。所有传输错误 应该被视为暂时的,客户端应该重试,就好像一个 已收到 cXML 500 范围状态代码。所有 HTTP 回复 不包含有效的 cXML 内容,包括 HTTP 404/未找到和 HTTP 500/内部服务器错误状态代码,被认为是传输 错误。其他常见的传输问题包括超时、TCP 错误 (例如“连接被拒绝”)和 DNS 错误(例如“主机 未知”)。解析请求文档时的验证错误会 通常会导致 400 范围内的 cXML 永久错误,最好是 406/不可接受。

在你的情况下,你想回复

  • HTTP 200/OK 答案
  • cXML 401 / 未经授权

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2013-08-08
    • 1970-01-01
    • 2011-12-11
    相关资源
    最近更新 更多