URL类

来源:互联网 发布:mac teamviewer 免费 编辑:程序博客网 时间:2024/06/07 01:54
Java.net包里面的类是进行网络编程的,其中java.net.URL类和java.net.URLConection类使编程者方便地利用URL在Internet上进行网络通信。

类 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
原创粉丝点击