最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java中的URL和URLConnection

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

URI 和 URLConnection

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

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

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

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

URN 就好像一個(gè)人的名字,URL 就像一個(gè)人的地址。

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

URL其實(shí)是一種資源

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

不是的,java中有大量的構(gòu)造函數(shù)允許使用一個(gè)個(gè)的分串來(lái)指定URL,有了URL對(duì)象就可以通過(guò)幾個(gè)不用的方法來(lái)獲取URL對(duì)應(yīng)的內(nèi)容,沒(méi)錯(cuò),我說(shuō)的就是網(wǎng)頁(yè):

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)的操作就都是很容易的,使用一個(gè)URL對(duì)象讀取一個(gè)URL簡(jiǎn)直不要太容易,剛才說(shuō)的靜態(tài)是我自己起的,其實(shí)并沒(méi)有這個(gè)說(shuō)法,而是我聯(lián)想到數(shù)據(jù)結(jié)構(gòu),像讀取這樣的操作都是靜態(tài)的 ,于是我在這里也算是做相同的比喻;

如果你想對(duì)HTTP事務(wù)做更多的控制呢?

比如說(shuō)我們肯定需要往服務(wù)器提交一些數(shù)據(jù),需要URL對(duì)象的 openConnection 函數(shù),這個(gè)函數(shù)可以返回一個(gè) URLConnection 對(duì)象,如果URL使用了HTTP協(xié)議,那么URLConnection 對(duì)象會(huì)返回一個(gè)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"");//網(wǎng)址瞎編的
        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);
    }
}

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

URLStreamHandler

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

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

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();
    }
}

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

相關(guān)文章

  • Java類和成員上的一些方法實(shí)例代碼

    Java類和成員上的一些方法實(shí)例代碼

    這篇文章主要介紹了Java類和成員上的一些方法實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Mybatis SQL日志如何轉(zhuǎn)換為可執(zhí)行sql

    Mybatis SQL日志如何轉(zhuǎn)換為可執(zhí)行sql

    這篇文章主要介紹了Mybatis SQL日志如何轉(zhuǎn)換為可執(zhí)行sql問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java中JFrame實(shí)現(xiàn)無(wú)邊框無(wú)標(biāo)題方法

    Java中JFrame實(shí)現(xiàn)無(wú)邊框無(wú)標(biāo)題方法

    這篇文章主要介紹了Java中JFrame實(shí)現(xiàn)無(wú)邊框無(wú)標(biāo)題方法,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • SpringBoot首筆交易慢問(wèn)題排查與優(yōu)化方案

    SpringBoot首筆交易慢問(wèn)題排查與優(yōu)化方案

    在我們的微服務(wù)項(xiàng)目中,遇到這樣的問(wèn)題:應(yīng)用啟動(dòng)后,第一筆交易響應(yīng)耗時(shí)高達(dá)4、5秒,而后續(xù)請(qǐng)求均能在毫秒級(jí)完成,這不僅觸發(fā)監(jiān)控告警,也極大影響了用戶體驗(yàn),本文將結(jié)合日志排查、性能工具分析以及預(yù)熱優(yōu)化手段,總結(jié)出一套完整的排查思路和解決方案
    2025-04-04
  • java繪制哆啦A夢(mèng) 超可愛

    java繪制哆啦A夢(mèng) 超可愛

    這篇文章主要介紹了java繪制哆啦A夢(mèng),特別的可愛,文中示例代碼介紹的也非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Java通過(guò)賣票理解多線程

    Java通過(guò)賣票理解多線程

    本文主要介紹了一個(gè)多線程賣票的例子,通過(guò)賣票這個(gè)實(shí)例來(lái)介紹多線程的方式,加深理解,需要的朋友可以參考下
    2017-09-09
  • Javaweb實(shí)現(xiàn)郵件發(fā)送

    Javaweb實(shí)現(xiàn)郵件發(fā)送

    這篇文章主要為大家詳細(xì)介紹了Javaweb實(shí)現(xiàn)郵件發(fā)送,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java實(shí)戰(zhàn)之字符編碼問(wèn)題的幾種解決方案

    Java實(shí)戰(zhàn)之字符編碼問(wèn)題的幾種解決方案

    在Java中設(shè)置字符編碼是一個(gè)常見且重要的操作,特別是在處理文件讀寫、網(wǎng)絡(luò)通信等場(chǎng)景時(shí),下面這篇文章主要介紹了Java實(shí)戰(zhàn)之字符編碼問(wèn)題的幾種解決方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-02-02
  • 解決IDEA中maven導(dǎo)入jar包一直報(bào)錯(cuò)問(wèn)題

    解決IDEA中maven導(dǎo)入jar包一直報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了解決IDEA中maven導(dǎo)入jar包一直報(bào)錯(cuò)問(wèn)題,本文通過(guò)實(shí)例圖文的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java停止線程的3種方法

    Java停止線程的3種方法

    這篇文章主要分享Java停止線程的3種方法,分別是自定義中斷標(biāo)識(shí)符,停止線程、使用線程中斷方法interrupt停止線程、使用stop停止線程。下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-05-05

最新評(píng)論

马公市| 花垣县| 盘锦市| 民乐县| 常州市| 资阳市| 什邡市| 南川市| 仪陇县| 咸丰县| 永修县| 钟祥市| 阳谷县| 嘉荫县| 阿拉善左旗| 海口市| 营山县| 繁昌县| 土默特右旗| 东莞市| 凤阳县| 屯留县| 杂多县| 崇州市| 鄢陵县| 娄烦县| 永清县| 水富县| 昭平县| 卓资县| 那坡县| 板桥市| 永善县| 集安市| 筠连县| 云林县| 南郑县| 蓬安县| 白沙| 怀集县| 新民市|