关于java的HTTPURLConnection的使用原理

一直对于http协议的请求原理不是很明白,于是做了如下测试
用ServerSocket做了一个服务端,接收请求,并获取输入流打印,
用HTTPURLConnertion向服务端发送请求,
第一次测试时,客户端只使用了输出流,并使用了flush().然后再close,结果服务端什么都没有输出
就报错了
第二次测试,客户端,即使用了输出流,又使用了输入流,然后再close,结果服务端,正常输出了
,
于是迷茫了,到底时怎么回事啊,请问高手.

4个回答

HTTPURLConnection的原理就是HTTP通信原理。输出就是发出请求,输入就是取得响应。
一次完整的http会话就是客户端发出请求,服务器接收请求,根据请求内容做业务处理,处理后的数据响应给客户端,客户端接收响应内容。OVER!
以上任何一个环节出问题都会报错。并且请求与响应使用1个连接,此间如果断开会报错。
对于第一次测试,如果关闭的只是输出流那么是正确的操作,如果关闭的是连接,那么必然报错(没有完成会话,程序就结束了,同关闭连接)
对于第二次测试,完整会话过程。

啥意思?贴源码。首先使用websocket进行信息传输,需要经过一次handshake(握手),就是连接,然后在进行数据的传输。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问