时间:2021-05-19
——声明,脑残人士远离,本博客的核心不是if-else+前缀,而是如何通过URL协议处理框架定义私有协议
URI与URL的区别
URI (uniform resource identifier)统一资源标志符;URL(uniform resource location )统一资源定位符(或统一资源定位器);URI是一个相对来说更广泛的概念,URL是URI的一种,是URI命名机制的一个子集,可以说URI是抽象的,而具体要使用URL来定位资源。URI指向的一般不是物理资源路径,而是整个系统中的映射后的资源标识符。URL是Internet上用来描述信息资源的字符串,主要用在各种/blog/830644 line = line.substring(0, line.length()-"\r\n0\r\n\r\n".length()); System.out.println(line); break; }else{ System.out.println(line); } } pw.close(); stream.close();运行结果
结果说明,协议确实定义成功了
当然,如上数据解析不符合我们的要求,因为是chunked编码信息,如何解析符合要求有,请移步:
HTTP Chunked数据编码与解析算法
五.后话,自定义mineType解析器
java中提供了ContentHandlerFactory,用来解析mineType,我们这里制定我们自己的解析器,当然,JDK中提供的更丰富,这里所做的只是为了符合特殊需求
public class EchoContentHandler extends ContentHandler {public Object getContent(URLConnection connection) throws IOException {InputStream in = connection.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(in));return br.readLine();}public Object getContent(URLConnection connection, Class[] classes) throws IOException {InputStream in = connection.getInputStream();for (int i = 0; i < classes.length; i++) {if (classes[i] == InputStream.class)return in;else if (classes[i] == String.class)return getContent(connection);}return null;}}用法很简单
URLConnection.setContentHandlerFactory(new EchoContentHandlerFactory());声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java自定义枚举转换器复制代码代码如下:importorg.apache.commons.beanutils.Converter;/***自定义枚举转换器**
Java中自定义异常详解及实例代码下面做了归纳总结,欢迎批评指正自定义异常classChushulingExceptionextendsException{pu
java中自定义回调事件的写法创建interface类,创建interface对象,实现set方法:使用:kotlin中自定义点击事件写法依照java的思想(不
HTML5新增属性data-*书写实例1.定义:data-*属性用于存储页面或应用程序的私有自定义数据。data-*属性赋予我们在所有HTML元素上嵌入自定义d
一、URL解析函数复制代码代码如下:/***@param{string}url完整的URL地址*@returns{object}自定义的对象*@descript