休息接受标题逗号与分号

时间:2018-06-07 10:04:38

标签: rest restsharp

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

示例:

request.AddHeader("Accept", acceptContentType);

使用acceptContentType如下:

  

应用/ JSON;的OData =详细

(这可以按预期工作)

  

应用/ JSON,的OData =详细

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

  

应用/ JSON;应用/ XML

(这与代码400失败。错误:无法解析HTTP头字段“Accept”,其值为“application / json; application / xml”。)

  

应用/ JSON,应用/ XML

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

  

应用/ XML,应用/ JSON

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

是否有要遵循的标准,或者它是否都依赖于服务器端处理传入标头的方式?

2 个答案:

答案 0 :(得分:0)

道歉,我知道我犯了什么错误。 昂首阔步的叛逃将会是这样的

  

“产生”:[             “应用程序/ JSON;的OData =详细”,             “应用程序/ xml” 的       ],

而不是

  

“产生”:[             “应用程序/ JSON”,             “的OData =详细”,             “应用程序/ xml” 的           ]

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

  

应用/ JSON;的OData =冗长,应用/ XML

答案 1 :(得分:-1)

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