Java必知必会URL和URLConnection
Java 网络编程:必知必会的 URL 和 URLConnection
java.net.URL 类将 URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号。java.net.URLConnection 则代表了应用程序和 URL 之间的通信链接,可用于读取和写入此 URL 引用的资源。URI = Universal Resource Identifier ,中文释义为统一资源标志符URL = Universal Resource Locator ,中文释义为统一资源定位符URN = Universal Resource Name ,中文释义为统一资源名称
URI 可以分为 URL 和 URN,或者是 URL 和 URN 的结合体(同时具备 Locator 和 Name)。URN 就好像一个人的名字,URL 就像一个人的地址。换句话说:URN 确定了身份,URL 提供了找到它的方式。 URL其实是一种资源
URL代表的是一种资源,它使用的是统一资源定位格式,形如:https://toutiao.com,其实我们还可以用URL来构造对象的,使用字符串吗?不是的,java中有大量的构造函数允许使用一个个的分串来指定URL,有了URL对象就可以通过几个不用的方法来获取URL对应的内容,没错,我说的就是网页: import java.net.*; import java.io.*; public class IntTest{ public static void main(String [] args) throws Exception{ URL url = new URL(args[0]); InputStream html = url.openStream(); int c; do{ c = html.read(); if(c != -1){ System.out.print((char) c); } }while(c != -1); } }或许,这是你之前没有听说过的:URLConnection
一般静态的操作就都是很容易的,使用一个URL对象读取一个URL简直不要太容易,刚才说的静态是我自己起的,其实并没有这个说法,而是我联想到数据结构,像读取这样的操作都是静态的 ,于是我在这里也算是做相同的比喻;
如果你想对HTTP事务做更多的控制呢?,比如说我们肯定需要往服务器提交一些数据,需要URL对象的 openConnection 函数,这个函数可以返回一个 URLConnection 对象,如果URL使用了HTTP协议,那么URLConnection 对象会返回一个URLConnection的子类:HttpURLConnection; import java.net.*; import java.io.*; public class Handin{ public static void main(String [] args) throws Exception{ URL url=new URL(""http//com.aaaaa.com"");//网址瞎编的 HttpURLConnection con=(HttpURLConnection)url.openConnection(); int c; con.setDoInput(true); con.setDoOutput(true); con.setrequestMethod("POST"); con.setRequestProperty("Content-type","application/X-WWW-form-urlencoded"); con.connect(); PrintWriter pri=new PrintWriter{ new OutputStreamWriter{con.getOutputStream(),"12321",true} pri.print("sasd"+URLEncoder.encode(args[0]+"dasda")); pri.flush(); System.out.println(con.getResponseMessage()); InputStream in=con.getInputStream(); do{ char x; c=in.read(); x=(char)c; if(c!=-1){ System.out.print(x); } }while(c!=-1); } }
关于HttpURLConnection,获取HttpURLConnection对象只能是用http://URL(注意我这里只是写了一个格式而已)来创建,并调用HttpURLConnection对象的openConnection函数,然后把返回的URLConnection值赋给HttpURLConnection。 谁是幕后推手?
URL和URLConnection都是指派URLStreamHandler和URLConnection来干活,经过封装之后,URL对象会检查他的URL协议端口,然后调用URLStreamHandlerFactory的一个对象,这个对象主要用于创建URLStreamHandler子类,使得与指定的协议相符合;
子类URLStreamHandler创建一个相应的URLConnection对象,也解析URL,这样你可以定义用户化URL格式,对象URLConnection通常都是和服务器打交道的。 import java.net.*; import java.io.*; public class TimeURLConnection extends URLConnection{ private Socket con; public final static int de=13; public TimeURLConnection void connect() throws IOException{ if(!=connected){ int port=url.getPort(); if(port<0) port=de; con=new Socket(url.getHost(),port); connected=true; } } public synchronized InputStream getInputStream() throws IOException{ connect(); return con.getInputStream(); } }
如何评价方方其人其事方方日记在美国出版,在舆论场引发新一轮地震,胡锡进等社会名人和各界人士纷纷发声。那么我们应该如何评估其人其日记呢?大作家当然不是。大作家应该是具有大视野大气魄大情怀,不拘于一城一地
游戏机无缘PC玩家独享战地2042光线追踪战地2042可能是今年最受瞩目的战争类第一人称游戏了,自第一条预告片发布以后就受到了大家的热切关注,在测试阶段更是经常出现一堆玩家打着打着的时候,看到火箭要发射,纷纷尝试跑到火箭上
杜鹃哩咯花开红艳艳山顶上的映山红每年4月中旬至6月中旬,正是杜鹃花开的季节。夜半三更哟盼天明,寒冬腊月哟盼春风,若要盼得哟红军来,岭上开遍哟映山红,若要盼得哟红军来,岭上开遍哟映山红上世纪70年代后
吉安采茶戏的前世今生吉安地处赣江中游,历史上经济曾比较发达,崇文重教,文化底蕴深厚,素有江南望郡文章节义之邦金庐陵之称。吉安戏曲活动源远流长,孕育了极具特色的地方戏剧吉安采茶戏。吉安采茶戏是全国戏曲普
蓄势待发Intel公布DDR5获认证内存套件清单Intel的AlderLakeS或者说十二代桌面酷睿已经在上周正式发布,目前在各大电商平台上都可以看到预订连接,对于希望搭建最强十二代酷睿平台的买家来说,DDR5内存绝对是不可或缺
比亚迪汉EV亮相拉美,定义拉美新能源乘用车豪华新标杆近日,出海拉丁美洲和加勒比区域(下文简称拉美)的首批四驱高性能版旗舰型比亚迪汉EV抵达巴西墨西哥哥伦比亚乌拉圭多米尼加共和国哥斯达黎加和巴哈马。这是比亚迪在拉美乘用车市场的重要一步
免费首保时间及公里数的提示免费首保时间及公里数的提示首保时间和公里数(可提前不可超过,超过需自费)燃油车型1自然吸气3个月3000公里(例如元F3)2涡轮增压6个月3500公里(例如有带T的,1。5T2。0
WIFI链接心率测试云康宝智能体脂秤CS20A使用评测每逢回家胖五斤WIFI链接心率测试云康宝智能体脂秤CS20A使用评测又到了一年一度的中秋国庆佳节。趁着这个国庆长假回到了父母家。见到了不少的亲戚朋友,好久没回家了,于是就被亲戚朋友
一机多用,全屋清洁!小狗T12PlusRinse擦地吸尘器使用测试家庭清洁的实际场景分析每天你会花费多少时间用于打扫卫生?实际生活中,越大户型和越复杂的布置无疑会加重清洁难度。下图是一个常见的100平米的三室一厅的设计图,从设计图上可以看出,床沙
飙速宅男!在家也可以完成畅快的骑行,野小兽M3动感单车日常测试自从看完飙速宅男(到目前为止周刊少年Champion上连载了13年的自行车主题动漫)之后,整个人对自行车运动就非常着迷。每天耳边都回荡着小野田坂道同学哼唱的公主公主闪闪亮(山王爬坡
安前有疑虑安后变真香!余库自动进水食物垃圾处理器使用体验分享目前住的是比较老的小区,每次扔垃圾都需要打个包,然后再拎到楼下去扔到分类的垃圾桶里,所以说每次都提着大包小包的垃圾下楼,真的是非常麻烦。另外一方面在扔垃圾的时候,特别是湿垃圾很难打