HttpURLConnection的addRequestProperty和setRequestProperty

本文详细对比了setRequestProperty和addRequestProperty两种方法的区别,通过具体示例解释了这两种方法如何处理HTTP请求头中的重复键值对,对于理解HTTP请求设置至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、当只有addRequestProperty的时候

 URL url = new URL("http://localhost:8080/net/listnets.jsp");
		        URLConnection connection = url.openConnection();
		        connection.addRequestProperty("name", "asad");
		        connection.addRequestProperty("name", "komal");
		        connection.addRequestProperty("class", "10th");
		        connection.addRequestProperty("Address", "Delhi 17");

		        Map map = connection.getRequestProperties();
		        Set set = map.entrySet();

		        Iterator iterator = set.iterator();
		        while (iterator.hasNext()) {
		            System.out.println(iterator.next());
		        }
输出结果:name=[komal, asad]
Address=[Delhi 17]
class=[10th]

二、当只有setRequestProperty的时候

		        URL url = new URL("http://localhost:8080/net/listnets.jsp");
		        URLConnection connection = url.openConnection();
		        connection.setRequestProperty("name", "komal");
		        connection.setRequestProperty("name", "asad");
		        connection.setRequestProperty("class", "10th");
		        connection.setRequestProperty("Address", "Delhi 17");

		        Map map = connection.getRequestProperties();
		        Set set = map.entrySet();

		        Iterator iterator = set.iterator();
		        while (iterator.hasNext()) {
		            System.out.println(iterator.next());
		        }
输出结果:
name=[asad]
Address=[Delhi 17]
class=[10th]
注意name的设置,会发生覆盖的作用。

三、当先set后add的时候

 
 
URL url = new URL("http://localhost:8080/net/listnets.jsp");
		URLConnection connection = url.openConnection();
		connection.setRequestProperty("name", "asad");
		connection.addRequestProperty("name", "komal");
		connection.addRequestProperty("class", "10th");
		connection.addRequestProperty("Address", "Delhi 17");

		Map map = connection.getRequestProperties();
		Set set = map.entrySet();

		Iterator iterator = set.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}
输出结果
name=[komal, asad]
Address=[Delhi 17]
class=[10th]
 
 

四、当先add后set的时候

URL url = new URL("http://localhost:8080/net/listnets.jsp");
		URLConnection connection = url.openConnection();
		connection.addRequestProperty("name", "komal");
		connection.setRequestProperty("name", "asad");
		connection.addRequestProperty("class", "10th");
		connection.addRequestProperty("Address", "Delhi 17");

		Map map = connection.getRequestProperties();
		Set set = map.entrySet();

		Iterator iterator = set.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}


 

name=[asad]
Address=[Delhi 17]
class=[10th]

五、结

setRequestProperty方法,如果key存在,则覆盖;不存在,直接添加。

addRequestProperty方法,不管key存在不存在,直接添加。


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值