网络编程3-URL编程(URL)

时间:2022-03-19 19:24:40

1、URL(Uniform Resource Locatior) 统一资源占位符,表示Intenet上某一资源的地址

2、URL的组成部分

传输协议:主机名:端口号:文件名

例:http://192.168.1.151:10085/webapp/js/service.js

3、URL的openStream()方法可以开启输入流

输出则要考URL的openConnection获取URLConnection对象

4、例子,注释

package com.url.test;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; import org.junit.Test; public class TestURL { @Test
public void urlTest(){
//1、创建url对象
URL url = null;
try {
url = new URL("http://127.0.0.1:8080/test/hello.txt?a=1&b=2");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取协议名
System.out.println(url.getProtocol());
//获取主机名
System.out.println(url.getHost());
//获取端口号
System.out.println(url.getPort());
//获取文件路径
System.out.println(url.getPath());
//获取文件名
System.out.println(url.getFile());
//文件相对位置
System.out.println(url.getRef());
//参数
System.out.println(url.getQuery()); //2、把服务器资源读进来
InputStream is = null;
try {
is = url.openStream();
byte [] b = new byte[20];
int len;
while((len = is.read(b)) != -1){
System.out.println(new String(b,0,len));
} is.close();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(is != null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} //3、写出去,注意先获取URLConnetcion对象
OutputStream os = null;
try {
URLConnection urlConn = url.openConnection();
os = urlConn.getOutputStream();
os.write("Hello ".getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(os != null){
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }
}