我正在尝试理解使用逗号与分号在添加到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
是否有要遵循的标准,或者它是否都依赖于服务器端处理传入标头的方式?
答案 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