1. 程式人生 > 其它 >C# dotnet 編寫 curl 的使用者名稱和密碼邏輯

C# dotnet 編寫 curl 的使用者名稱和密碼邏輯

技術標籤:dotnetcorec#C#dotnetcurl

在使用 curl 時,可以採用 -u 加上使用者名稱和密碼,這個對應在 C# 裡面也是兩句話的事情。只是在 curl 裡面封裝好了,我通過工具人協助解決,於是就在這裡記錄一下

假定使用 curl 輸入的是如下程式碼

curl -ulindexi:FD7doYUzM7WApXobRb7X9qgURCF -T "E:\lindexi\doubi.exe" "https://blog.lindexi.com/artifactory/doubi.exe"

通過上面程式碼可以給我的儲存服務上傳檔案,而如果使用 dotnet 編寫,其實邏輯也十分簡單

在賬號密碼這裡,假定有變數 userName 和 key 分別是賬號和密碼,那麼構建上傳檔案使用的賬號密碼將放在 Http 的 Header 裡面,程式碼如下

            var encodedAuthString = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{userName}:{key}"));

            httpClient.DefaultRequestHeaders.Add("Authorization", $"Basic {encodedAuthString}"
);

而上傳檔案呼叫的是 Put 介面,整體邏輯如下

            var url = "https://blog.lindexi.com/artifactory/doubi.exeg";
            var file = @"E:\lindexi\doubi.exe";

            var userName = "lindexi";
            var key = "FD7doYUzM7WApXobRb7X9qgURCF";

            var encodedAuthString =
Convert.ToBase64String(Encoding.ASCII.GetBytes($"{userName}:{key}")); var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Authorization", $"Basic {encodedAuthString}"); await httpClient.PutAsync(url, new StreamContent(File.OpenRead(file)));

看起來程式碼還是十分簡單的,於是我就使用這個方法,在 GitHub 的 Action 上幫忙下載外網的內容,然後傳送到我的國內伺服器上

感謝工具人 lsj 提供的方法

知識共享許可協議
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名林德熙(包含連結:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可釋出。如有任何疑問,請與我聯絡。