URL类
来源:互联网 发布:mac teamviewer 免费 编辑:程序博客网 时间:2024/06/07 01:54
Java.net包里面的类是进行网络编程的,其中java.net.URL类和java.net.URLConection类使编程者方便地利用URL在Internet上进行网络通信。
案例1 请求Servlet数据
案例2 向Servlet发送数据
案例3 下载图片
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
URL类常用方法:
getDefaultPort(): 返回默认的端口号
getFile(): 获得URL指定资源的完整文件名
getHost(): 返回主机名
getPath(): 返回指定资源的文件目录和文件名
getPort(): 返回端口号,默认为-1
getProtocol(): 返回表示URL中协议的字符串对象
getRef(): 返回URL中的HTML文档标记,即#号标记
getUserInfo: 返回用户信息
toString: 返回完整的URL字符串
Demo:
package com.qf.day27;import java.net.URL;/** * URL类的使用 * @author wgy * */public class URLDemo {public static void main(String[] args) throws Exception{//1创建URLURL url=new URL("http://localhost:8080/Day27Web/login.html");//2获取信息//2.1获取域名System.out.println("getAuthority----"+url.getAuthority());//2.2获取默认端口号System.out.println("getDefaultPort()---"+url.getDefaultPort());//2.3获取文件System.out.println("getFile()---"+url.getFile());//2.4获取主机名System.out.println("getHost()---"+url.getHost());//2.5获取pathSystem.out.println("getPath()---"+url.getPath());//2.6获取端口号System.out.println("getPort()--"+url.getPort());//2.7获取协议System.out.println("getProtocal()---"+url.getProtocol());}}
案例1 请求Servlet数据
package com.qf.day27;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;/** * 使用URL URLConnection实现get请求 * @author wgy * */public class URLConnectionDemo1 {public static void main(String[] args) throws Exception {// 1创建URLURL url = new URL("http://10.0.161.117:8080/Day27Web/MyServlet");// 2调用openConnection返回链接对象HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 3设置参数// 3.1设置请求的链接超时时间connection.setConnectTimeout(10000);// 3.2设置读取的超时时间connection.setReadTimeout(10000);// 3.3设置请求方式connection.setRequestMethod("GET");// GET POST 默认GET// 4建立链接connection.connect();// 5处理响应// System.out.println("状态吗:"+connection.getResponseCode());if (connection.getResponseCode() == 200) { //200成功 //404 资源不存在 500服务器程序错误InputStream is = connection.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String line = null;while ((line = br.readLine()) != null) {System.out.println("响应正文:" + line);}// 6关闭流br.close();}}}
案例2 向Servlet发送数据
package com.qf.day27;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;/** * 使用URL URLConnection实现post请求 * @author wgy * */public class URLConnectionDemo2 {public static void main(String[] args) throws Exception {//1创建URLURL url=new URL("http://10.0.161.117:8080/Day27Web/LoginServlet");//2调用openConnection().返回连接对象HttpURLConnection connection=(HttpURLConnection) url.openConnection();//3设置参数//3.1连接超时connection.setConnectTimeout(10000);//3.2读取超时connection.setReadTimeout(10000);//3.3请求方式connection.setRequestMethod("POST");//3.4获取输出流 (并没有真正输出给服务器,写到缓存中)connection.setDoOutput(true); //设置可以向服务器发送数据OutputStream os=connection.getOutputStream();os.write("username=张三&pwd=123456".getBytes("utf-8"));//4建立连接connection.connect();//5处理响应if(connection.getResponseCode()==200){InputStream is=connection.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(is,"utf-8"));String data=br.readLine();System.out.println(data);br.close();}//6关闭流os.close();}}
案例3 下载图片
package com.qf.day27;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;/** * 使用url URLConnction实现文件下载 * @author wgy * */public class URLConnectionDemo3 {public static void main(String[] args) throws Exception{//1创建URLURL url=new URL("http://localhost:8080/Day27Web/2.jpg");//2调用openConnection(),返回连接对象HttpURLConnection connection=(HttpURLConnection) url.openConnection();//3设置参数connection.setConnectTimeout(10000);connection.setReadTimeout(10000);connection.setRequestProperty("range", );//4建立连接connection.connect();//5处理响应if(connection.getResponseCode()==200){InputStream is=connection.getInputStream();FileOutputStream fos=new FileOutputStream("d:\\xxx.jpg");byte[] buf=new byte[1024*4];int len=0;while((len=is.read(buf))!=-1){fos.write(buf,0,len);}//6关闭is.close();fos.close();System.out.println("下载成功");}else{System.out.println(connection.getResponseCode()+"下载失败");}}}
0 0
- URL类
- 类 URL:URL常用方法
- URL类:使用URL读取网页内容
- 【Java】【URL】Java URL类解析
- JS-URL类
- URL 类 示例
- url重写类介绍
- URL类学习笔记
- HttpModule类(URL重写)
- URL类使用例子
- URL类获取XML
- TSE-定义URL类
- URL类的使用
- java URL类
- 黑马程序员-URL类
- URL工具类
- URL类的stream
- URL类的使用
- UML Use Case Diagrams: Tips and FAQ
- 2.3.第八个实验--使用38译码器驱动数码管
- 在docker中制作自己的JDK+tomcat镜像
- 多态性与虚函数2
- tnsping命令
- URL类
- APP开发实战27-HTTP方法
- Java 基础知识总结
- Ajax笔记
- Material Design风格登录注册
- JDK 源码解析 —— Condition
- 深度学习(一)autoencoder的Python实现(1)
- Not a git repository (or any of the parent directories): .git解决
- 【bzoj4530】[Bjoi2014]大融合 并查集+线段树合并