(网络编程)应用层URLConnection与传输层Socket的关系

本文介绍了一个Java中使用URLConnection进行HTTP请求的示例程序。通过这个示例,开发者可以了解如何利用Java内置库发送HTTP请求并接收响应。程序展示了如何获取URL、打开连接、读取响应内容等操作。

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

Socket是传输层的技术,包含了UDP和TCP两种传输方式。

HTTP协议是应用层的协议,应用层协议还有FTP文件传输协议。

 

Java中,应用层使用URL和URLConnection完成HTTP协议和Socket流的封装。

 

package com.gc.socket;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class HttpDemo {
	public static void main(String[] args) throws IOException {
		/**
		 * URLConnection对象将HTTP协议头的解析、Socket传输进行了封装
		 * 对外提供方法封装好的方法
		 * 开发者不用面对Socket编程处理与服务端的连接
		 * 直接通过该对象就能完成基于HTTP协议的编程
		 */
		URL url = new URL("http://www.baidu.com?name=zs");
		
		//port=-1,服务端会自动转为80端口
		System.out.println(url.getProtocol()+","+url.getHost()+","+url.getPort()+","+url.getQuery());
		
		/**对http头信息进行了内部处理,并完成了与服务器之间的socket连接*/
		URLConnection conn = url.openConnection();
		
		System.out.println(conn.getContentType());
		System.out.println(conn.getContentLength());
		
		InputStream in = conn.getInputStream();
		
		byte[] buf = new byte[1024];
		
		int len = 0;
		
		while((len=in.read(buf))!=-1)
			System.out.println(new String(buf,0,len));
		
		in.close();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值