国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開源.NetCore通用工具庫Xmtool使用連載 - HTTP請求篇

這篇具有很好參考價值的文章主要介紹了開源.NetCore通用工具庫Xmtool使用連載 - HTTP請求篇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Github源碼】


《上一篇》 介紹了Xmtool工具庫中的XML操作類庫,今天我們繼續(xù)為大家介紹其中的HTTP請求類庫。

在現(xiàn)如今的軟件需求場景中,HTTP網(wǎng)絡(luò)請求幾乎是開發(fā)過程中必然會使用的功能;而系統(tǒng)自帶的HTTPClient對象使用起來并不是那么容易和友好,因此我們對其進(jìn)行了二次封裝成了一個Web類庫。
該Web類庫提供了HTTP請求和HTTP安全相關(guān)兩方面的封裝。HTTP請求是基于系統(tǒng)自帶的HttpClient對象進(jìn)行了二次封裝,提供了更易用的方法,并且對Json類型更加友好;HTTP安全方面主要針對XSS攻擊提供了字符處理方法,后續(xù)會根據(jù)需要不斷添加。


HTTP請求

使用HTTP請求,首選需要獲取HttpClientExt對象:

HttpClientExt client = Xmtool.Web.Client();
// 或者
HttpClientExt client = Xmtool.Web.Client("microservice-1");

根據(jù)獲取Client時傳入的參數(shù)不同,系統(tǒng)將返回不同的實例;但對相同的參數(shù)會做單例處理,也就是說相同的參數(shù)將獲取到同一個實例;當(dāng)不傳入任何參數(shù)時,每次都會返回一個全新的實例。

根據(jù)HTTP常用請求場景類庫提供了各種屬性和方法:

Timeout屬性

BaseAddress屬性

AddDefaultHeader方法

AddRequestHeader方法

AddRequestHeaderWithoutValidation方法

SetContent方法

SetJsonContent方法

SetJsonContent方法二

Clear方法

Get方法

GetAsync方法

Post方法

PostAsync方法

Put方法

PutAsync方法

Delete方法

DeleteAsync方法

Patch方法

PatchAsync方法

Head方法

HeadAsync方法

Options方法

OptionsAsync方法

1. Timeout屬性

說明:用來設(shè)置或獲取HTTP請求的超時時間。

2. BaseAddress屬性

說明: 用來設(shè)置或獲取HTTP請求的基本地址,在后續(xù)使用相對地址發(fā)送請求時會使用該地址進(jìn)行拼接。

3. AddDefaultHeader方法

public HttpClientExt AddDefaultHeader(string name, string value)
說明:為HTTP請求設(shè)置請求頭信息,該頭信息會在實例每次發(fā)起請求時攜帶。
參數(shù):

name:請求頭名稱。

value:請求頭內(nèi)容。

HttpClientExt client = Xmtool.Web.Client();
client.AddDefaultHeader("User", "admin");

4. AddRequestHeader方法

public HttpClientExt AddRequestHeader(string name, string value)
說明:為HTTP請求設(shè)置請求頭信息,該頭信息僅會在實例下一次發(fā)起請求時攜帶。
參數(shù):

name:請求頭名稱。

value:請求頭內(nèi)容。

5. AddRequestHeaderWithoutValidation方法

public HttpClientExt AddRequestHeaderWithoutValidation(string name, string value)
說明:為HTTP請求設(shè)置請求頭信息,該頭信息僅會在實例下一次發(fā)起請求時攜帶;該方法和AddRequestHeader的區(qū)別是不會對參數(shù)的合法性進(jìn)行檢查。
參數(shù):

name:請求頭名稱。

value:請求頭內(nèi)容。

6. SetContent方法

public HttpClientExt SetContent(string content)
說明:為下一次HTTP請求(主要是提交類請求,如Post)設(shè)置提交內(nèi)容。
參數(shù):

content:請求提交內(nèi)容。

HttpClientExt client = Xmtool.Web.Client();
client.SetContnent("Good Day");
// TODO

7. SetJsonContent方法

public HttpClientExt SetJsonContent(string content)
說明:為下一次請求設(shè)置提交內(nèi)容,必須是JSON格式。
參數(shù):

content:請求提交內(nèi)容,JSON格式。

HttpClientExt client = Xmtool.Web.Client();
client.SetJsonContnent("{\"Author\": \"softwaiter\"}");
// TODO

8. SetJsonContent方法二

public HttpClientExt SetJsonContent(DynamicObjectExt obj)
說明:通過動態(tài)對象為下一次請求設(shè)置JSON格式的提交內(nèi)容。
參數(shù):

obj:要提交的動態(tài)對象。

DynamicObjectExt obj = new DynamicObjectExt();
obj.Author = "softwaier";

HttpClientExt client = Xmtool.Web.Client();
client.SetJsonContnent(obj);
// TODO

9. Clear方法

public HttpClientExt Clear()
說明:清除僅在下一次請求中生效的提交內(nèi)容和請求頭信息。

10. Get方法

public HttpResponseExt Get(string requestUri)
說明:以Get方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt rep = client.Get("https://www.baidu.com");
// TODO

11. GetAsync方法

public async Task<HttpResponseExt> GetAsync(string requestUri)
說明:Get方法的異步版本。

12. Post方法

public HttpResponseExt Post(string requestUri)
說明:以Post方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

// 新增一條人員信息
HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt rep = client.SetJsonContent("{\"user\": \"admin", \"password\": \"Admin123\"}")
    .Post("https://www.ceshi.com/person");
// TODO

13. PostAsync方法

public async Task<HttpResponseExt> PostAsync(string requestUri)
說明:Post方法的異步版本。

14. Put方法

public HttpResponseExt Put(string requestUri)
說明:以Put方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

// 修改Id為1的人員住址
HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt rep = client.SetJsonContent("{\"address\": \"BeiJing\"}")
    .Put("https://www.ceshi.com/person/1");
// TODO

15. PutAsync方法

public async Task<HttpResponseExt> PutAsync(string requestUri)
說明:Put方法的異步版本。

16. Delete方法

public HttpResponseExt Delete(string requestUri)
說明:以Delete方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

// 刪除Id為1的人員信息
HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt rep = client.Delete("https://www.ceshi.com/person/1");
// TODO

17. DeleteAsync方法

public async Task<HttpResponseExt> DeleteAsync(string requestUri)
說明:Delete方法的異步版本。

18. Patch方法

public HttpResponseExt Patch(string requestUri)
說明:以Patch方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

// 修改Id為1的人員信息
HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt rep = client.SetJsonContent("{\"name\":\"wangxm\", \"age\": 18}")
    .Delete("https://www.ceshi.com/person/1");
// TODO

19. PatchAsync方法

public async Task<HttpResponseExt> PatchAsync(string requestUri)
說明:Patch方法的異步版本。

20. Head方法

public HttpResponseExt Head(string requestUri)
說明:以Head方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

21. HeadAsync方法

public async Task<HttpResponseExt> HeadAsync(string requestUri)
說明:Head方法的異步版本。

22. Options方法

public HttpResponseExt Options(string requestUri)
說明:以O(shè)ptions方式發(fā)起一個HTTP請求。
參數(shù):

requestUri:HTTP請求地址,可以是相對地址或絕對地址;如果是相對地址將使用BaseAddress進(jìn)行拼接。

23. OptionsAsync方法

public async Task<HttpResponseExt> OptionsAsync(string requestUri)
說明:Options方法的異步版本。

HTTP安全

HTTP安全在類庫中目前僅提供了一個應(yīng)對XSS攻擊的處理方法,該方法會對傳入?yún)?shù)進(jìn)行二次,將內(nèi)容中有風(fēng)險部分進(jìn)行處理并返回。

使用時需要首先獲取HttpSecurity對象:

HttpSecurity security = Xmtool.Web.Security();

Xss方法

1. Xss方法

public string Xss(string str)
說明:對指定字符內(nèi)容進(jìn)行Xss風(fēng)險處理并返回處理結(jié)果。
參數(shù):

str:需要進(jìn)行處理的字符串內(nèi)容。

string str = "<script>alert(123);</script><div>hello world.</div>";
string str2 = Xmtool.Web.Security().Xss(str);
Console.Writeline(str2);	// 輸出<div>hello world.</div>
//TODO 

附加說明

一、DynamicObjectExt對象

說明:DynamicObjectExt動態(tài)對象是Xmtool工具庫中最具特色的一項功能;通過該對象可以無需事先定義就能像使用實體類一樣進(jìn)行數(shù)據(jù)對象的賦值和操作;且比系統(tǒng)自帶的dynamic對象更加靈活友好。如果你熟悉Javascript的話,它就像Javascript中的變量一樣可以任意使用;更加詳細(xì)的說明請參考《DynamicObjectExt詳細(xì)說明》。

二、HttpResponseExt對象

HttpResponseExt對象用于接收HTTP請求返回結(jié)果,封裝了響應(yīng)碼、響應(yīng)頭、響應(yīng)內(nèi)容 3 部分內(nèi)容。

StatusCode屬性

Headers屬性

Content屬性

Json屬性

Xml屬性文章來源地址http://www.zghlxwxcb.cn/news/detail-641188.html

1. StatusCode屬性

說明:HTTP請求的響應(yīng)狀態(tài)碼。

2. Headers屬性

說明:HTTP請求的響應(yīng)頭信息。
HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt resp = client.Get("https://www.baidu.com");
if (resp.Headers.ContainsKey("user"))
{
    string user = resp.Headers["user"];
    // TODO
}

3. Content屬性

說明:HTTP請求的響應(yīng)內(nèi)容。

4. Json屬性

說明:HTTP請求返回的JSON格式的內(nèi)容;如果返回內(nèi)容不是合法的JSON格式,將返回異常。
// https://www.ceshi.com/person/1 請求返回內(nèi)容
{
    "Name": "softwaiter",
    "Age": 18,
    "Address": "BeiJing"
}
HttpClientExt client = Xmtool.Web.Client();
HttpResponseExt resp = client.Get("https://www.ceshi.com/person/1");
if (resp.Json.Name == "softwaiter")
{
    // TODO
}

5. Xml屬性

說明:HTTP請求返回的XML格式的內(nèi)容;如果返回內(nèi)容不是合法的XML格式,將返回異常。


【Github源碼】

到了這里,關(guān)于開源.NetCore通用工具庫Xmtool使用連載 - HTTP請求篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 開源.NetCore通用工具庫Xmtool使用連載 - XML操作篇

    《上一篇》 介紹了Xmtool工具庫中的發(fā)送短信類庫,今天我們繼續(xù)為大家介紹其中的XML操作類庫。 XML操作是軟件開發(fā)過程中經(jīng)常會遇到的情況;包括XML內(nèi)容的遍歷解析,或者特定值內(nèi)容的查詢獲取等等。Xmtool工具庫提供了一種更方便的方式對Xml進(jìn)行遍歷解析或者對特定節(jié)點內(nèi)

    2024年02月14日
    瀏覽(20)
  • 開源.NetCore通用工具庫Xmtool使用連載 - 擴(kuò)展動態(tài)對象篇

    《上一篇》 介紹了Xmtool工具庫中的圖形驗證碼類庫,今天我們繼續(xù)為大家介紹其中的擴(kuò)展動態(tài)對象類庫。 擴(kuò)展動態(tài)對象是整個工具庫中最重要的一個設(shè)計。在軟件開發(fā)過程中,我們經(jīng)常需要定義各種各樣的數(shù)據(jù)對象;例如:用于參數(shù)傳遞的數(shù)據(jù)實體類、用于接口返回結(jié)果的

    2024年02月08日
    瀏覽(21)
  • 開源.NetCore通用工具庫Xmtool使用連載 - OSS文件上傳篇

    《上一篇》 介紹了Xmtool工具庫中的圖像處理類庫,今天我們繼續(xù)為大家介紹其中的OSS文件上傳類庫。 將本地文件上傳到服務(wù)器是軟件系統(tǒng)經(jīng)常會遇到的需求,例如:設(shè)置用戶頭像,上傳Excel報表等等;涉及到網(wǎng)絡(luò)訪問性能、存儲空間等因素的考慮,通常我們會選擇使用第三方

    2024年02月19日
    瀏覽(24)
  • 基于.NetCore開源的Windows的GIF錄屏工具

    基于.NetCore開源的Windows的GIF錄屏工具

    推薦一個Github上Start超過20K的超火、好用的屏幕截圖轉(zhuǎn)換為 GIF 動圖開源項目。 這是基于.Net Core + WPF 開發(fā)的、開源項目,可將屏幕截圖轉(zhuǎn)為 GIF 動畫。它的核心功能是能夠簡單、快速地截取整個屏幕或者選定區(qū)域,并將其轉(zhuǎn)為 GIF動畫,還支持自定義 GIF 動畫效果、字幕、背景

    2024年02月06日
    瀏覽(29)
  • 深入理解通用的HTTP POST請求發(fā)送方法

    在現(xiàn)代的軟件開發(fā)中,與服務(wù)端進(jìn)行HTTP通信是一項基礎(chǔ)而重要的任務(wù)。本篇博客將深入研究并詳細(xì)解釋一個通用的HTTP POST請求發(fā)送方法,該方法使用了 RestTemplate 庫來簡化HTTP通信。我們將逐行分析代碼,理解每一步的操作,并通過一個簡單的示例演示如何使用這個方法。 步

    2024年02月04日
    瀏覽(29)
  • java使用hutool工具類發(fā)送http或者h(yuǎn)ttps請求太香啦

    我們使用java內(nèi)置的http工具實現(xiàn)遠(yuǎn)程調(diào)用的時候,都是用try catch包一堆代碼,巨難受,今天看見有人使用hutool工具類那是天簡單了呀,具體操作如下: 1,引入依賴 2, 如果不需要設(shè)置其他什么頭信息,代碼: 如果是https請求直接換url里面的http就行 返回信息格式: {\\\"code\\\":200

    2024年02月14日
    瀏覽(24)
  • 使用HuTool的Http工具發(fā)送post傳遞中文參數(shù),請求會亂碼的解決方法

    Hutool 是一款功能豐富、易用的Java工具類庫,我們在工作中經(jīng)常會使用它的各種類庫方法簡化我們的開發(fā),其中我們甚至能通過它的Http工具類直接發(fā)送http的各種請求,下面來介紹一下發(fā)送post請求時參數(shù)中有中文出現(xiàn)亂碼的解決方法。 這樣就不會造成請求參數(shù)出現(xiàn)亂碼問題

    2024年02月01日
    瀏覽(32)
  • 28、web攻防——通用漏洞&SQL注入&HTTP頭XFF&COOKIE&POST請求

    28、web攻防——通用漏洞&SQL注入&HTTP頭XFF&COOKIE&POST請求

    $_GET :接收get請求,傳輸少量數(shù)據(jù),URL是有長度限制的; $_POST :接收post請求; $_COOKIE :接收cookie,用于身份驗證; $_REQUEST :收集通過 GET 、POST和COOKIE 方法發(fā)送的表單數(shù)據(jù); $_SERVER :接收數(shù)據(jù)包中的一些內(nèi)容,如瀏覽器信息、當(dāng)前訪問url地址等; 網(wǎng)站功能點: 后臺要記錄

    2024年01月19日
    瀏覽(22)
  • HarmonyOS開發(fā):基于http開源一個網(wǎng)絡(luò)請求庫

    HarmonyOS開發(fā):基于http開源一個網(wǎng)絡(luò)請求庫

    網(wǎng)絡(luò)封裝的目的,在于簡潔,使用起來更加的方便,也易于我們進(jìn)行相關(guān)動作的設(shè)置,如果,我們不封裝,那么每次請求,就會重復(fù)大量的代碼邏輯,如下代碼,是官方給出的案例: 以上的案例,每次請求書寫這么多代碼,在實際的開發(fā)中,是無法承受的,所以基于此,封裝

    2024年02月06日
    瀏覽(27)
  • SeaTunnel 海量數(shù)據(jù)同步工具的使用(連載中……)

    SeaTunnel 海量數(shù)據(jù)同步工具的使用(連載中……)

    SeaTunnel 是一個非常易用,高性能、支持實時流式和離線批處理的海量數(shù)據(jù)處理產(chǎn)品,前身是 WaterDrop (中文名:水滴),自 2021年10月12日更名為 SeaTunnel 。2021年12月9日,SeaTunnel 正式通過Apache 軟件基金會的投票決議,以全票通過的優(yōu)秀表現(xiàn)正式成為 Apache 孵化器項目。 2022年

    2024年01月16日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包