在以前的一个项目中用到过 流 的操作,今天大致总结一下。
与客户方的数据传输其实可以分成几个步骤:
1.封装报文
2.准备链接(包括换取ip,端口,协议,timeout) http和https还需要请求的url 以及httphead
3.发送报文(判断是否要对所做的操作校验)
4.解析返回的报文信息,根据信息修改本次执行的状态
其中简单的4个步骤中,在第二步和第三步中在可以抽象出一个公用的方法,在项目中经过分析发现,http流,https流以及tcp流之间有很大的共通性:
private void prepareConnection() throws Exception {
// 创建连接工厂
ConnectionFactory factory = getConnectionFactory();
// 设置连接属性
setConnectionProperty(factory);
// 构造连接
conn = getConnection(factory);
// 打开连接
openConnection(conn);
// 获取输出流
os = getOutputStream(conn);
}
在创建连接工厂中,可以根据具体的渠道把请求机器的IP、超时设置初始化返回factory对象,这一步http,https,tcp都是通用的;
在设置连接设置中,若有渠道对连接有特殊的操作,比如需要渠道自己校验的key值等;
在构造连接中,根据http,https,tcp创建对应的connection.(后面在详细介绍);
在获取输出流中,直接返回OutputStream 的输出流。
在接下来就是进行交互了:
// 发送报文
send(os, requestStr);
// 关闭输出流
closeOutputStreamQuietly(os);
// 获取输入流
InputStream is = getInputStream(conn);
// 接收报文
String responseStr = recv(is);
// 关闭输入流
closeInputStreamQuietly(is);
//返回报文
return responseStr;
后面基本上一目了然了,对返回的报文进行解析,根据解析的结果修改本次操作的状态。
后续有空会继续补充!尽量编写细致。
相关推荐
数据流,对象流,字节流,字符流 的一些总结说明
Java文件流知识点梳理总结,IO文件流,包含了File类、缓冲流、字节流、字符流、转换流等
2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、...代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
javaIO字节流读取文件方式总结共4页.pdf.zip
IO流学习第二周的考核总结,避免再次入坑,留下记录
流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输 称为流,流的本质是数据传输,...1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出:
1.操作数据单位:字节流、字符流 对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,...),使用字节流处理 2.数据的流向:输入流、输出流 3.流的角色:...
JavaIO字节输出流的总结共6页.pdf.zip
字节流、文件流、文件操作、字节流文件流相互转换,流的包装
1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出: InputStream 是所有的输入字节流的父类,它是一个抽象类。 ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的...
在本篇文章里小编给大家分享的是关于java字节流的相关知识点内容,有兴趣的朋友们跟着学习参考下。
输入流和输出流 字节流和字符流 缓冲区 装饰设计模式
io流的学习总结,流的介绍 流的分类: 1.方向分类: 输入流(读取): 输出流(写入): 2.最小单位: 字节流(二进制数据): 字符流(字符数据,纯文本):
NULL 博文链接:https://newtime.iteye.com/blog/430957
IO总结,包括:File类,递归,字节流,字符流,序列化流,高效流,转换流,打印流。
IO流 在Java当中可以使用流来完成...Java中根据流向的不同可以分为输入流和输出流,根据处理单位不同可以分为字节流和字符流。 2. 字节流 2.1 字节输入流-InputStream InputStream类是所有字节输入流的父类,它是一个
字节流对象InputStream OutputStream 字符流对象Reader Writer 字节流与字符流的转换新潮的 NIO 缓冲区(Buffer)通道(Channel) 示例:文件拷贝案例 BIO 和 NIO 拷贝文件的区别操作系统的零拷贝 选择器(Selectors) 选择...