URLConnection setRequestProperty vs addRequestProperty
让我说我正在谈论HTTP到Web服务器,我会接受HTML或文本,但更喜欢HTML。 换句话说,标题应该说(我想!)
接受:text / html,text / *
我正在使用Java,所以我有一个URLConnection。 我应该使用:
myUrlConnction.setRequestProperty("Accept", "text/html"); myUrlConnction.addRequestProperty("Accept", "text/*");
要么
myUrlConnction.setRequestProperty("Accept", "text/html, text/*");
或者他们是等同的???
一般来说,我看到的大多数第三方代码似乎并不担心这些标题的排序或多个值,所以我想知道它是如何最终起作用的。
第一个代码段会产生两个accept-header,而第二个代码段会产生一个带有两个选择器的accept-header。
它们实际上是等价的。
该规范还指出更具体的媒体范围具有优先权,因此两者都会产生预期的行为。
如果必须指定多个媒体范围,并且它们具有相同的特定范围,则可以添加q参数。
资料来源:http 1.1 spec( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html ):
setRequestProperty和addRequestProperty之间的基本区别是: –
-
setRequestProperty >>设置常规请求属性。 如果具有密钥的属性已存在,请使用新值覆盖其值。
-
addRequestProperty >>添加由键值对指定的常规请求属性。 此方法不会覆盖与同一密钥关联的现有值。
有关更多信息,请浏览api doc