【问题标题】:Rest Accept header comma versus semicolonRest Accept 标头逗号与分号
【发布时间】:2018-06-07 10:04:38
【问题描述】:

我试图了解在添加到 restSharp 请求标头的一个字符串中使用逗号与分号分隔多个内容类型之间的区别。

例子:

request.AddHeader("Accept", acceptContentType);

acceptContentType 如下:

应用程序/json;odata=verbose

(按预期工作)

应用程序/json,odata=verbose

(代码 400 失败:无法解析值为“application/json,odata=verbose”的 HTTP 标头字段“Accept”。)

应用程序/json;应用程序/xml

(此操作失败,代码为 400。错误:无法解析值为“application/json;application/xml”的 HTTP 标头字段“Accept”。)

应用程序/json,应用程序/xml

(这会将数据内容类型返回为 json

应用程序/xml,应用程序/json

(这会将数据内容类型返回为 xml

是否有要遵循的标准,还是完全取决于服务器端如何处理传入的标头?

【问题讨论】:

    标签: rest restsharp


    【解决方案1】:

    抱歉,我知道我在哪里犯了错误。 大摇大摆的定义会是这样的

    “产生”:[ “应用程序/json;odata=详细”, “应用程序/xml” ],

    而不是

    “产生”:[ “应用程序/json”, “odata=详细”, “应用程序/xml” ]

    所以逗号应该是类型之间的分隔符和用于扩展类型的分号

    application/json;odata=verbose,application/xml

    【讨论】:

      【解决方案2】:

      一种是媒体类型组,以逗号分隔,如application/json,application/xml 另一个是参数组,如 odata=verbose,odata2=verbose2 如果把 2 放在一起,那么就像 application/json,application/xml;odata=verbose,odata2=verbose2

      【讨论】:

        猜你喜欢
        • 2015-07-23
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 2019-08-19
        • 1970-01-01
        • 2018-07-25
        • 1970-01-01
        相关资源
        最近更新 更多