亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Java中的URL和URLConnection

 更新時間:2023年08月10日 09:11:40   作者:ycfxhsw  
這篇文章主要介紹了淺談Java中的URL和URLConnection,URL代表的是一種資源,它使用的是統(tǒng)一資源定位格式, 其實我們還可以用URL來構造對象的,java中有大量的構造函數(shù)允許使用一個個的分串來指定URL,需要的朋友可以參考下

URI 和 URLConnection

java.net.URL 類將 URL 地址進行了封裝,并提供了解析 URL 地址的基本方法,比如獲取 URL 的主機名和端口號。

java.net.URLConnection 則代表了應用程序和 URL 之間的通信鏈接,可用于讀取和寫入此 URL 引用的資源。

  • URI = Universal Resource Identifier ,中文釋義為統(tǒng)一資源標志符
  • URL = Universal Resource Locator ,中文釋義為統(tǒng)一資源定位符
  • URN = Universal Resource Name ,中文釋義為統(tǒng)一資源名稱

URI 可以分為 URL 和 URN,或者是 URL 和 URN 的結合體(同時具備 Locator 和 Name)。

URN 就好像一個人的名字,URL 就像一個人的地址。

換句話說:URN 確定了身份,URL 提供了找到它的方式。

URL其實是一種資源

URL代表的是一種資源,它使用的是統(tǒng)一資源定位格式,形如:https://juejin.cn, 其實我們還可以用URL來構造對象的,使用字符串嗎?

不是的,java中有大量的構造函數(shù)允許使用一個個的分串來指定URL,有了URL對象就可以通過幾個不用的方法來獲取URL對應的內容,沒錯,我說的就是網頁:

import java.net.*;
import java.io.*;
public class IntTest{
    public static void main(String [] args) throws Exception{
        URL url = new URL(args[0]);
        InputStream html = url.openStream();
        int c;
        do{
            c = html.read();
            if(c != -1){
                System.out.print((char) c);
            }
        }while(c != -1);
    }
}

URLConnection

一般靜態(tài)的操作就都是很容易的,使用一個URL對象讀取一個URL簡直不要太容易,剛才說的靜態(tài)是我自己起的,其實并沒有這個說法,而是我聯(lián)想到數(shù)據(jù)結構,像讀取這樣的操作都是靜態(tài)的 ,于是我在這里也算是做相同的比喻;

如果你想對HTTP事務做更多的控制呢?

比如說我們肯定需要往服務器提交一些數(shù)據(jù),需要URL對象的 openConnection 函數(shù),這個函數(shù)可以返回一個 URLConnection 對象,如果URL使用了HTTP協(xié)議,那么URLConnection 對象會返回一個URLConnection的子類:HttpURLConnection;

import java.net.*;
import java.io.*;
public class Handin{
    public static void main(String [] args) throws Exception{
        URL url=new URL(""http//com.aaaaa.com"");//網址瞎編的
        HttpURLConnection con=(HttpURLConnection)url.openConnection();
        int c;
        con.setDoInput(true);
        con.setDoOutput(true);
        con.setrequestMethod("POST");
        con.setRequestProperty("Content-type","application/X-WWW-form-urlencoded");
        con.connect();
        PrintWriter pri=new PrintWriter{
        new OutputStreamWriter{con.getOutputStream(),"12321",true}
        pri.print("sasd"+URLEncoder.encode(args[0]+'dasda'));
        pri.flush();
        System.out.println(con.getResponseMessage());
        InputStream in=con.getInputStream();
        do{
            char x;
            c=in.read();
            x=(char)c;
            if(c!=-1){
                System.out.print(x);
            }
        }while(c!=-1);
    }
}

關于HttpURLConnection,獲取HttpURLConnection對象只能是用 //URL (注意我這里只是寫了一個格式而已)來創(chuàng)建,并調用HttpURLConnection對象的openConnection函數(shù),然后把返回的URLConnection值賦給HttpURLConnection。

URLStreamHandler

URL和URLConnection都是指派URLStreamHandler和URLConnection來干活,經過封裝之后,URL對象會檢查他的URL協(xié)議端口,然后調用URLStreamHandlerFactory的一個對象,這個對象主要用于創(chuàng)建URLStreamHandler子類,使得與指定的協(xié)議相符合;

子類URLStreamHandler創(chuàng)建一個相應的URLConnection對象,也解析URL,這樣你可以定義用戶化URL格式,對象URLConnection通常都是和服務器打交道的。

import java.net.*;
import java.io.*;
public class TimeURLConnection extends URLConnection{
    private Socket con;
    public final static int de=13;
    public TimeURLConnection void connect() throws IOException{
        if(!=connected){
            int port=url.getPort();
            if(port<0) port=de;
            con=new Socket(url.getHost(),port);
            connected=true;
        }
    }
    public synchronized InputStream getInputStream() throws IOException{
        connect();
        return con.getInputStream();
    }
}

到此這篇關于淺談Java中的URL和URLConnection的文章就介紹到這了,更多相關Java的URL和URLConnection內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot項目為何引入大量的starter?如何自定義starter?

    SpringBoot項目為何引入大量的starter?如何自定義starter?

    這篇文章主要介紹了SpringBoot項目為何引入大量的starter?如何自定義starter?文章基于這兩個問題展開全文,需要的小伙伴可以參考一下
    2022-04-04
  • Java代碼為例講解堆的性質和基本操作以及排序方法

    Java代碼為例講解堆的性質和基本操作以及排序方法

    堆數(shù)據(jù)結構可以看作一顆完全二叉樹,因而又被成為二叉堆,這里我們以Java代碼為例講解堆的性質和基本操作以及排序方法,需要的朋友可以參考下
    2016-06-06
  • Java中的接口知識匯總

    Java中的接口知識匯總

    本文給大家匯總介紹了在java中的接口知識,包括為什么要使用接口、什么是接口、抽象類和接口的區(qū)別、如何定義接口以及定義接口注意點,希望大家能夠喜歡
    2016-04-04
  • JavaCV實現(xiàn)圖片中人臉檢測的示例代碼

    JavaCV實現(xiàn)圖片中人臉檢測的示例代碼

    這篇文章主要介紹了如何利用JavaCV實現(xiàn)圖片中人臉檢測的功能,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下
    2022-11-11
  • jfreechart畫折線圖的方法

    jfreechart畫折線圖的方法

    這篇文章主要為大家詳細介紹了jfreechart畫折線圖的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • VSCode中開發(fā)JavaWeb項目的詳細過程(Maven+Tomcat+熱部署)

    VSCode中開發(fā)JavaWeb項目的詳細過程(Maven+Tomcat+熱部署)

    這篇文章主要介紹了VSCode中開發(fā)JavaWeb項目(Maven+Tomcat+熱部署),本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • SpringBoot實現(xiàn)AOP切面的三種方式

    SpringBoot實現(xiàn)AOP切面的三種方式

    Spring,SpringBoot框架憑借多種高效機制,顯著增強了代碼的功能性,并實現(xiàn)了切面編程(AOP)的精髓,其核心亮點之一,是運用動態(tài)代理技術,無需觸動源代碼即可在Bean的運行時為其動態(tài)織入額外功能,本文給大家介紹了SpringBoot通過3種方式實現(xiàn)AOP切面,需要的朋友可以參考下
    2024-08-08
  • druid ParserException類錯誤問題及解決

    druid ParserException類錯誤問題及解決

    這篇文章主要介紹了druid ParserException類錯誤問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring Boot 定制與優(yōu)化內置的Tomcat容器實例詳解

    Spring Boot 定制與優(yōu)化內置的Tomcat容器實例詳解

    本文主要記錄對內置容器優(yōu)化和定制的方式,用于自己加深對SpringBoot理解。本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • springboot中的RestTemplate使用詳解

    springboot中的RestTemplate使用詳解

    這篇文章主要介紹了springboot中的RestTemplate使用詳解,RestTemplate繼承自InterceptingHttpAccessor并且實現(xiàn)了RestOperations接口,其中RestOperations接口定義了基本的RESTful操作,這些操作在RestTemplate中都得到了實現(xiàn),需要的朋友可以參考下
    2023-09-09

最新評論