日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

HttpClient 学习记录---URIBuilder

發(fā)布時(shí)間:2024/6/21 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 HttpClient 学习记录---URIBuilder 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源: httpClient學(xué)習(xí)記錄--URIBuilder

構(gòu)造函數(shù)
URIBuilder()
URIBuilder(final String string) 內(nèi)部會(huì)創(chuàng)建URI對(duì)象
URIBuilder(final URI uri)
非空的兩個(gè)構(gòu)造實(shí)際內(nèi)部都調(diào)用了digestURI(uri) 將URI對(duì)象解析并賦值給類的屬性

URIBuilder正是采用了至少有7個(gè)參數(shù),如果要滿足各種需求的組合,恐怕總共要提供∑(C^7^~i~)(i=1~7)種構(gòu)造函數(shù),顯然不現(xiàn)實(shí)。然而,URIBuilder既可以造出一個(gè)不可變的URI,又可以兼顧N種參數(shù)。URIBuilder可以這樣用:

/  http://www.google.com/search?q=編程狗的博客&btnG=Google+Search&aq=f&oq=
URI uri = new URIBuilder()
    .setScheme("http")
    .setHost("www.google.com")
    .setPath("/search")
    .setParameter("q", "編程狗的博客")
    .setParameter("btnG", "Google Search")
    .setParameter("aq", "f")
    .setParameter("oq", "")
    .build();

uilder Pattern(建造者模式)。等號(hào)右邊實(shí)際上是一行,先創(chuàng)建一個(gè)URIBuilder對(duì)象實(shí)例,調(diào)用實(shí)例的setScheme方法,此方法順便返回URIBuilder對(duì)象實(shí)例,剛剛返回的這個(gè)實(shí)例調(diào)用setHost方法,...,最后一個(gè)返回的URIBuilder對(duì)象實(shí)例調(diào)用build方法,返回URI對(duì)象。它是如何實(shí)現(xiàn)的呢?

原來的URI類的set方法的基礎(chǔ)上,添加一個(gè)返回值,返回URIBuilder自己就夠了:

class URIBuilder{
    public URIBuilder setScheme(String scheme){
    ...
        return this;
    }

    public URIBuilder setHost(String host){
    ...
        return this;
    }

    public URIBuilder setPath(String path){
    ...
        return this;
    }

    //built 方法,把參數(shù)拼接,然后返回一個(gè)URI類
    public URI built(){
    ...
        return uri;
    }
}

由于URIBuilder每次都返回它自己,所以可以連續(xù)的執(zhí)行 set方法,最后通過built方法返回URI類。

類屬性


String url = "http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq=";
URIBuilder uriBuilder = new URIBuilder(url);
System.out.println(uriBuilder.getScheme());
System.out.println(uriBuilder.getUserInfo());
System.out.println(uriBuilder.getHost());
System.out.println(uriBuilder.getPort());
System.out.println(uriBuilder.getPath());
System.out.println(uriBuilder.getQueryParams());
System.out.println(uriBuilder.getFragment());
System.out.println(uriBuilder.getCharset());

輸出如下所示:
scheme:http
userinfo:null
host:www.google.com
prot:-1 端口默認(rèn)是80,當(dāng)顯示指定端口時(shí),此處便能取到值
path:/search
queryParams:[hl=en, q=httpclient, btnG=Google Search, aq=f, oq=]
fragment:null
charset:null
某些屬性含義未知手動(dòng)設(shè)置一次

String url = "http://info.sporttery.cn/football/info/fb_match_hhad.php?m=102909";
URIBuilder uriBuilder = new URIBuilder(url);
uriBuilder.setFragment("111");
uriBuilder.setUserInfo("222", "333");
uriBuilder.setCharset(new GBK());
System.out.println(uriBuilder.build());
System.out.println(uriBuilder.getScheme());
System.out.println(uriBuilder.getUserInfo());
System.out.println(uriBuilder.getHost());
System.out.println(uriBuilder.getPath());
System.out.println(uriBuilder.getQueryParams());
System.out.println(uriBuilder.getFragment());
System.out.println(uriBuilder.getCharset());

輸出如下:
http://222:333@info.sporttery.cn/football/info/fb_match_hhad.php?m=102909#111
scheme:http
userInfo:222:333 沒見過這東西-。-
host:info.sporttery.cn
path:/football/info/fb_match_hhad.php
queryParams:[m=102909]
fragment:111 路由
charset:GBK

更多,見文章標(biāo)題下鏈接

https://blog.csdn.net/wxy1234556/article/details/79022402?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

做產(chǎn)品的程序,才是好的程序員!

總結(jié)

以上是生活随笔為你收集整理的HttpClient 学习记录---URIBuilder的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。