URLConnection的调用setRequestProperty VS addRequestPr

2019-06-26 06:07发布

比方说,我说的是HTTP的Web服务器,我会接受HTML或文本,但更喜欢HTML。 换句话说,头部应该说(我想!)

接受:text / html的,文本/ *

我使用Java,所以我有一个URLConnection。 我应该使用:

myUrlConnction.setRequestProperty("Accept", "text/html");
myUrlConnction.addRequestProperty("Accept", "text/*");

要么

myUrlConnction.setRequestProperty("Accept", "text/html, text/*");

或者他们等效???

在一般情况下,大部分的第三方代码,我看似乎没有担心太多关于订购或这些标题的多个值,所以我不知道它是如何结束了工作。

Answer 1:

第一代码段将导致两个接受报头,而第二代码段将给出一个接受报头有两个选择器。

它们实际上是等价的。

该规范还规定,更加具体的媒体范围具有优先权,这样既会产生你的预期行为。

如果您必须指定几家媒体的范围,他们也同样具体的,您可以添加Q参数。

来源:HTTP 1.1规范( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html ):



Answer 2:

调用setRequestProperty和addRequestProperty之间的基本区别是: -

  1. 调用setRequestProperty >>设置一般请求属性。 如果与键的属性已经存在, 覆盖其与新价值的价值。

  2. addRequestProperty >>添加由关键值对指定的一般请求属性。 这种方法不会改写与相同键关联的现有值。

欲了解更多信息,浏览API文档



文章来源: URLConnection setRequestProperty vs addRequestProperty