亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

基于WebRequest.RegisterPrefix的使用詳解

2020-01-24 03:21:19
字體:
來源:轉載
供稿:網友

RegisterPrefix 方法將 WebRequest 子代注冊到服務請求。 WebRequest 后代通常被注冊來處理特定的協議(例如 HTTP 或 FTP),但也可能被注冊來處理對特定服務器或服務器上的路徑的請求。

已注冊的預注冊保留類型包括下列類型:

    http://

    https://

    ftp://

    file://

msdn的解釋是:將WebRequest子代注冊到服務請求,很短,很抽象,不夠白話,如果你一開始就理解這句話的意思,那我只能說你的智商很高,技術也很好。

我先不說RegisterPrefix是什么意思,先看下我碰到的問題。

在http上傳 vs ftp上傳中,因為有大文件,并且客戶端是wpf,所以我選擇了ftp上傳,結果就是文件的上傳路徑是:

ftp://192.168.0.1/ 6be490e3-d383-4167-8cbd-b833f31d855cDesert.jpg

ftp 的用戶名是WQ,密碼是123456.

因為ftp的路徑是圖片,所以我嘗試綁定到圖片上,例如

<Image Source="{Binding FtpUrl}" Height="32" Stretch="Uniform"/>

這樣有什么問題嗎?

這樣直接綁定會拋出異常,因為ftp需要用戶名,密碼登陸后才能訪問資源。

可以采用間接的方式,例如在C#代碼中使用WebClient來獲取FtpUrl 的Stream,然后進行處理。

所以代碼中會有大量的

webClient.Credentials = new NetworkCredential("WQ", "123456");

當然了,你也可以使用Factory模式來處理,不過總的感覺,很麻煩。

其實微軟很早就發現了這類問題,所以WebClient才提供了WebClient.Create 的方法,看到Create讓你想到了什么嗎?,沒錯,就是工廠。

如果我們能夠讓所有提交到ftp://192.168.0.1 的WebClient都自動的加上Credentials那就解決了這個問題,而如何實現這個功能,那就需要使用RegisterPrefix 方法了。

image


 第一個prefix,是前綴的意思,例如 ftp://192.168.0.1 ,那么以后針對這個prefix的所有請求都會自動的調用creator 的Create方法來創建WebRequest 對象。之所以創建的是WebRequest對象,是因為WebClient也繼承自WebRequest。 所以你new WebClient 的時候,內部會調用WebRequest.Create 方法返回的WebRequest.

所以需要新建一個CredentialsWebRequestCreater類來繼承IWebRequestCreate
 
代碼如下:

復制代碼 代碼如下:

public class CredentialsWebRequestCreater:IWebRequestCreate
{
    private string userName = string.Empty;
    private string password = string.Empty;
    public CredentialsWebRequestCreater(string userName, string password)
    {
        this.userName = userName;
        this.password = password;
    }
    public WebRequest Create(Uri uri)
    {
        WebRequest webRequest = WebRequest.CreateDefault(uri);
        webRequest.Credentials = new NetworkCredential(this.userName, this.password);
        return webRequest;
    }
}

這個類實現了IWebRequestCreate接口,所以可以被RegisterPrefix方法調用。

如何使用RegisterPrefix方法呢?
System.Net.WebRequest.RegisterPrefix(“ftp://192.168.0.1”,
                    new Utils.CredentialsWebRequestCreater(“WQ”,”123456”));
這樣注冊后,以后所有的對ftp://192.168.0.1 的請求都會使用CredentialsWebRequestCreater 來創建WebRequest對象了,而CredentialsWebRequestCreater 類的Create方法就會去添加用戶名和密碼了。

這樣就可以直接綁定了,例如:
<Image Source="{Binding FtpUrl}" Height="32" Stretch="Uniform"/>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内免费精品永久在线视频| 欧美大尺度电影在线观看| 国产成人在线精品| 久久久久久国产精品三级玉女聊斋| 7777kkkk成人观看| 亚洲精品久久久久久久久久久久| 国产性色av一区二区| 亚洲精品有码在线| 国产精品成人观看视频国产奇米| 欧美尤物巨大精品爽| 欧美大肥婆大肥bbbbb| 亚洲精品资源美女情侣酒店| 亚洲在线免费观看| 亚洲一区亚洲二区| 日韩精品久久久久久福利| 成人黄色大片在线免费观看| 欧美一区三区三区高中清蜜桃| 国产精品流白浆视频| 57pao成人永久免费视频| 亚洲最新av网址| 国产精品丝袜久久久久久不卡| 国产69久久精品成人| 亚洲成av人片在线观看香蕉| 国产精品美女免费视频| 亚洲欧洲一区二区三区久久| 91中文字幕在线观看| 欧美一级免费视频| 欧美在线视频观看免费网站| 91九色蝌蚪国产| 韩国美女主播一区| 91久久精品美女| 亚洲精品一区二区久| 日韩中文在线不卡| 午夜精品福利视频| 欧美午夜无遮挡| 成人中文字幕在线观看| 在线看日韩av| 亚洲国产精品高清久久久| 国产精品免费福利| 欧美日韩成人在线播放| 91最新在线免费观看| 国产精品女人久久久久久| 国产美女精品免费电影| 亚洲第一国产精品| 亚洲在线视频福利| 亚洲色图激情小说| 2024亚洲男人天堂| 日韩精品视频在线观看免费| 国产va免费精品高清在线观看| 一区二区在线免费视频| 亚洲香蕉在线观看| 国产精品黄页免费高清在线观看| 久久男人资源视频| 97婷婷涩涩精品一区| 国模私拍一区二区三区| 国产精品96久久久久久又黄又硬| 国产精品日韩欧美综合| 日韩精品在线观看一区| 在线a欧美视频| 国产精品久久久久av| 亚洲第一视频网站| 日本免费一区二区三区视频观看| 日韩色av导航| 久久久久久久影院| 91亚洲国产成人久久精品网站| 成人黄色在线播放| 亚洲午夜av久久乱码| 国产精品久久久久久久av电影| 日韩电影在线观看免费| 国产精品96久久久久久| 国产精品日韩一区| 欧美另类xxx| 国产精品h片在线播放| 久久网福利资源网站| 色播久久人人爽人人爽人人片视av| 国产精品6699| 日本精品久久久久久久| 精品视频在线观看日韩| 久久久久久尹人网香蕉| 国产精品18久久久久久首页狼| 国产精品中文字幕在线| 成年无码av片在线| 91美女福利视频高清| 亚洲国产美女精品久久久久∴| 欧美激情视频一区| 97av在线视频| 狠狠躁夜夜躁人人爽天天天天97| 欧美黑人狂野猛交老妇| xxx欧美精品| 高清欧美性猛交| 欧美激情中文字幕乱码免费| 精品中文视频在线| 日韩精品视频在线观看免费| 国产精品欧美日韩一区二区| 日韩免费av片在线观看| 91a在线视频| 欧美激情在线观看视频| 国产精品美女主播| 亚洲午夜精品久久久久久性色| 亚洲人精选亚洲人成在线| 91大神福利视频在线| 欧美激情亚洲国产| 久久人人看视频| 尤物九九久久国产精品的特点| 日韩h在线观看| 久久久女女女女999久久| 国产精品久久久久999| 亚洲国产精品va在线观看黑人| 精品国产精品自拍| 国产丝袜精品视频| 亚洲欧美一区二区三区情侣bbw| 欧美性感美女h网站在线观看免费| 91国产中文字幕| 日韩电影中文 亚洲精品乱码| 久久久久成人精品| 一区二区av在线| 国产精品91在线| 国产精品jizz在线观看麻豆| 国产亚洲欧美日韩一区二区| 日韩在线视频播放| 亚洲а∨天堂久久精品9966| 国产91精品久久久久久久| 97在线看免费观看视频在线观看| 亚洲精品影视在线观看| 亚洲免费av片| 大量国产精品视频| 国产欧美日韩亚洲精品| 欧美激情亚洲激情| 精品视频在线播放色网色视频| 九九热这里只有精品免费看| 久久97久久97精品免视看| 欧美极品少妇全裸体| 国产精品爽黄69天堂a| 亚洲a在线观看| 国产精品专区h在线观看| 91在线精品视频| 亚洲国产精品久久精品怡红院| 国产精品久久久av久久久| 91tv亚洲精品香蕉国产一区7ujn| 日韩精品福利在线| 亚洲在线一区二区| 日韩激情在线视频| 亚洲精品一区二区久| 精品国产乱码久久久久酒店| 日本成人在线视频网址| 国产精品入口免费视频一| 欧美激情亚洲自拍| 欧美黑人一区二区三区| 国产一区二区三区在线| 国产精品video| 欧美在线一级视频| 成人美女免费网站视频| 色婷婷**av毛片一区| 美女av一区二区三区| 亚洲精品wwwww| 日韩欧美中文第一页| 久久精品国产v日韩v亚洲| 欧美电影《睫毛膏》| 波霸ol色综合久久| 45www国产精品网站| 伊人久久男人天堂| 亚洲欧美日韩区| 亚洲第一天堂无码专区| 2019国产精品自在线拍国产不卡|