httpURlConnection与Socket
来源:互联网 发布:筛子数据 编辑:程序博客网 时间:2024/06/05 18:45
客户端与服务器的连接归根结底都是socket连接,在Java中就是客户端的Socket与服务器端的ServerSocket进行连接。在使用HttpURLConnection时,总会有种疑惑:它是怎么建立连接并且是如何获取与服务器交互的数据呢。下午利用点儿时间梳理了HttpURLConnection与Socket之间的联系。
我们在程序中声明的HttpURLConnection是一个抽象类:java.NET.HttpURLConnection,
而具体的实现类是sun.Net.www.protocol.http.HttpURLConnection。
该实现类中拥有sun.net.www.http.HttpClient的一个实例对象,
而HttpClient继承自sun.net.NetworkClient,NetworkClient类声明有Socket成员变量。
由此而建立起HttpURLConnection与Socket之间的联系。
HttpURLConnection的connect()方法调用内部方法plainConnect(),plainConnect()中有如下代码对HttpClient进行实例化:
在实例化HttpClient的同时也就是实例化了NetworkClient。在HttpClient类的构造方法中有这么一行代码:
HttpURLConnection的所有数据操作方法(getInputStream(), getOutputStream()等等)
都会调用生成的socket连接进行处理。
HttpUrLConnection在socket超时时间内可以复用socket。
disconnect()方法会关闭HttpUrLConnection使用的socket。
HttpUrLConnection已经将实际流程与操作封装的很好,如非必要可不用考虑使用socket。
- HttpURLConnection 与 Socket
- httpURlConnection与Socket
- socket HttpURLConnection 通信异同
- 解析HttpURLConnection与代理服务器
- HttpURLConnection与代理服务器
- HttpsURLConnection 与 HttpURLConnection
- HttpsURLConnection 与 HttpURLConnection
- HttpURLConnection 与 HttpsURLConnection
- HttpsURLConnection 与 HttpURLConnection
- HttpUrlConnection 与 DefaultHttpClient
- setDoOutput与setDoInout(HttpUrlConnection)
- HttpURLConnection与HttpClient浅析
- URLConnection与HttpURLConnection小记
- HttpURLConnection与 HttpClient 区别
- HttpClient与HttpUrlConnection区别
- HttpClient与HttpURLConnection
- HttpClient 与 HttpURLConnection
- curl与HttpURLConnection
- 【译U3D】官方坦克3D游戏制作1-物体与场景搭建
- pat C4-GPLT真题及训练集 L1-039
- windows下mysql每天定时备份数据库几种方法
- 信息图:比特币区块链的工作原理
- CSS3 filter(滤镜) 属性
- httpURlConnection与Socket
- checkbox利用JQuery实现全选、反选的方法
- 【视频处理】YUV与RGB格式转换
- FFmpeg HEVC 多线程解码解析
- Material Design CheckBox 单独更改颜色
- 使用select * 插入数据时候两边表字段顺序的影响测试
- android 6.0截屏将图片放到相册中
- 焦点事件
- Ubuntu 16.04开机数字键盘不亮解决方案