네트워크 프로그래밍 URL

URL(Uniform Resource Locator): 인터넷상의 리소스 주소를 나타내는 Uniform Resource Locator. URL을 통해 가장 일반적인 www, ftp 사이트와 같은 인터넷의 다양한 네트워크 리소스에 액세스할 수 있습니다. 주어진 URL을 구문 분석하여 브라우저는 네트워크에서 해당 파일이나 기타 리소스를 찾을 수 있습니다.

 URL의 기본 구조는 5개 부분으로 구성됩니다.

<전송 프로토콜>://<호스트 이름>:<포트 번호>/<파일 이름>

: http://192.168.1.100:8080/helloworld/index.jsp

l URL을 표현하기 위해 클래스 URL은 java.net에서 구현된다. 다음 생성자로 URL 객체를 초기화할 수 있습니다.

Ø  public URL(String spec) : URL 주소를 나타내는 문자열을 통해 URL 객체를 구성할 수 있습니다. 예: URL url = 새 URL("http://www.atguigu.com/");

Ø  public URL(URL context, String spec) : 기본 URL과 상대 URL을 통해 URL 객체를 구성합니다. 예: URL downloadUrl = 새 URL(url,"download.html")

Ø 공개 URL(문자열 프로토콜, 문자열 호스트, 문자열 파일); 예: 새 URL("http", "www.atguigu.com", "download.html");

Ø 공개 URL(문자열 프로토콜, 문자열 호스트, int 포트, 문자열 파일); 예: URL gamelan = new URL("http","www.atguigu.com", 80, “download.html");

l 클래스 URL의 구성 메서드는 비런타임 예외가 throw되고 이 예외를 처리해야 한다고 선언합니다. 일반적으로 예외를 catch하려면 try-catch 문을 사용합니다.

l URL 개체가 생성된 후에는 해당 속성을 변경할 수 없지만 이러한 속성은 지정된 메서드를 통해 얻을 수 있습니다.

Ø public String getProtocol( ) URL의 프로토콜 이름을 가져옵니다.

Ø public String getHost( ) URL의 호스트 이름을 가져옵니다.

Ø public String getPort( ) URL의 포트 번호를 가져옵니다.

Ø public String getPath( ) URL의 파일 경로를 가져옵니다.

Ø public String getFile( ) URL의 파일 이름을 가져옵니다.

Ø public String getRef( ) 파일에서 URL의 상대적 위치를 가져옵니다.

Ø public String getQuery( ) URL의 쿼리 이름을 가져옵니다.

l URL 메서드 openStream(): 네트워크에서 데이터를 읽을 수 있음

l 일부 데이터를 서버측 CGI(common gateway interface-Common Gateway Interface- 약자로, 사용자 브라우저와 서버측 응용 프로그램을 연결하는 인터페이스)로 일부 데이터를 전송하는 등 데이터를 출력하려면 먼저 URL과 연결을 설정하면 읽고 쓸 수 있으며 이때 URLConnection을 사용해야 합니다.

l URLConnection: URL이 참조하는 원격 개체에 대한 연결을 나타냅니다. URL로 연결을 설정할 때 먼저 URL 객체의 openConnection() 메서드를 통해 해당 URLConnection 객체를 생성합니다 . 연결 프로세스가 실패하면 IOException이 발생합니다.

Ø URL netchinaren = 새 URL("http://www.atguigu.com/index.shtml");

Ø URLConnectonn u = netchinaren.openConnection( );

l URLConnection 개체를 통해 얻은 입력 스트림 및 출력 스트림은 기존 CGI 프로그램과 상호 작용할 수 있습니다.

Ø public Object getContent()가 IOException을 던짐

Ø public int getContentLength( )

Ø 공개 문자열 getContentType( )

Ø 공개 긴 getDate( )

Ø 공개 긴 getLastModified( )

Ø  공개 InputStream getInputStream() throws IOException

Ø 공개 OutputSteram getOutputStream() throws IOException

 

public class UrlTest {
      public static void main(String[] args) {
       URL url=null;
	   try {
		       url=new URL("http://127.0.0.1:8080/examples/2.txt");
			   InputStream is=url.openStream();
			   int len;
			   byte []b=new byte[1024];
			   while((len=is.read(b))!=-1){//将数据输出到控制台上。
				   String string=new String(b, 0, len);
				   System.out.print(string);
			   }
			   is.close();
			   //将url数据保存在本地
			   URLConnection connection=url.openConnection();
			   InputStream is1=connection.getInputStream();
			   FileOutputStream fos=new FileOutputStream("3.txt");
			   byte []b1=new byte[1024];
			   int len1;
			   while((len1=is1.read(b1))!=-1){
				   fos.write(b1,0,len1);
			   }
			   fos.close();
			   is1.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

Guess you like

Origin blog.csdn.net/zs520ct/article/details/79386930