您的位置:首页 > 编程语言 > Java开发

URL类

2016-05-18 21:45 423 查看
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创建URL
URL 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获取path
System.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创建URL
URL 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创建URL
URL 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创建URL
URL 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()+"下载失败");
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  url java