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

在?Net7.0?環(huán)境下如何使用?RestSharp?發(fā)送?Http(FromBody和FromForm)請求

 更新時間:2023年09月22日 09:16:28   作者:可均可可  
這篇文章主要介紹了在?Net7.0?環(huán)境下使用?RestSharp?發(fā)送?Http(FromBody和FromForm)請求,今天,我就兩個小的知識點,就是通過使用?RestSharp?訪問?WebAPI,提交?FromBody?和?FromForm?兩種方式的數(shù)據(jù),還是有些區(qū)別的,本文結(jié)合實例代碼介紹的非常詳細,需要的朋友參考下吧

一、簡介

最近,在做一個數(shù)據(jù)傳輸?shù)姆?wù),我在一個Worker Service里面需要訪問 WebAPI 接口,并傳輸數(shù)據(jù),也可以提交數(shù)據(jù)。由于第一次使用 RestSharp 發(fā)送請求,也遇到了很多問題,不過最終把問題都解決了。什么東西都一樣,第一次做都會才很多坑。

今天,我就兩個小的知識點,就是通過使用 RestSharp 訪問 WebAPI,提交 FromBody 和 FromForm 兩種方式的數(shù)據(jù),還是有些區(qū)別的。

我當(dāng)初也搞了一段時間。

我先說一下我的編碼環(huán)境:

操作系統(tǒng):Windows 10 Professional
開發(fā)工具:Visual Studio 2022
客戶端程序:Worker Service
服務(wù)端程序:Net Core WebAPI
框架版本:Net7.0

二、我的代碼    

以下我就介紹一下,使用 RestSharp、以FromBody 和 FromForm 兩種方式提交數(shù)據(jù)的實現(xiàn),廢話不多說,直接上代碼。如果是重點代碼,我會以紅色標注。

WebAPI 端的代碼:    

 [HttpPost]
        public async Task<CommonJsonResult<string>> AddOrUpdateScannerSetting([FromBody]/[FromForm] ScannerSettingInputDto inputDto)
        {
        }

其他的代碼不用細看,都是我的邏輯代碼。
Worker Service 端的代碼:

using (RestClient restClient = new RestClient())
            {
                var updateScannerSettingRequest = new RestRequest(new Uri(updateScannerSettingUrl), Method.Post);
                updateScannerSettingRequest.AddHeader("Authorization", "Bearer " + token);//增加的 JWT 認證
                updateScannerSettingRequest.AddHeader("Accept", "application/json");
                updateScannerSettingRequest.RequestFormat = DataFormat.Json;
                #region [FromBody]接收,這里有兩種方式,都是可以的
                1、updateScannerSettingRequest.AddParameter("application/json", JsonConvert.SerializeObject(scannerSettingInputDto), ParameterType.RequestBody);
                2、updateScannerSettingRequest.AddBody(scannerSettingInputDto);
                #endregion
                #region [FromForm]接收,所有字段都需要自己添加
                updateScannerSettingRequest.AddParameter("ScannerId", scannerSettingInputDto.ScannerId);
                updateScannerSettingRequest.AddParameter("Camera1Id", scannerSettingInputDto.Camera1Id);
                updateScannerSettingRequest.AddParameter("Camera2Id", scannerSettingInputDto.Camera2Id);
                updateScannerSettingRequest.AddParameter("Camera3Id", scannerSettingInputDto.Camera3Id);
                updateScannerSettingRequest.AddParameter("Camera4Id", scannerSettingInputDto.Camera4Id);
                updateScannerSettingRequest.AddParameter("Camera1IntegrationTime", scannerSettingInputDto.Camera1IntegrationTime);
                updateScannerSettingRequest.AddParameter("Camera2IntegrationTime", scannerSettingInputDto.Camera2IntegrationTime);
                updateScannerSettingRequest.AddParameter("Camera3IntegrationTime", scannerSettingInputDto.Camera3IntegrationTime);
                updateScannerSettingRequest.AddParameter("Camera4IntegrationTime", scannerSettingInputDto.Camera4IntegrationTime);
                updateScannerSettingRequest.AddParameter("Camera1Image", scannerSettingInputDto.Camera1Image);
                updateScannerSettingRequest.AddParameter("Camera2Image", scannerSettingInputDto.Camera2Image);
                updateScannerSettingRequest.AddParameter("Camera3Image", scannerSettingInputDto.Camera3Image);
                updateScannerSettingRequest.AddParameter("Camera4Image", scannerSettingInputDto.Camera4Image);
                updateScannerSettingRequest.AddParameter("ScannerCoordinate", scannerSettingInputDto.ScannerCoordinate);
                updateScannerSettingRequest.AddParameter("PatrolFile", scannerSettingInputDto.PatrolFile);
                updateScannerSettingRequest.AddParameter("WarningPhone", scannerSettingInputDto.WarningPhone);
                updateScannerSettingRequest.AddParameter("IsUpdate", scannerSettingInputDto.IsUpdate);
                updateScannerSettingRequest.AddParameter("Remarks", scannerSettingInputDto.Remarks);
                #endregion
                var updateScannerSettingResponse = await restClient.ExecuteAsync(updateScannerSettingRequest);
                var updateScannerSettingContent = updateScannerSettingResponse.Content;
                if (!string.IsNullOrEmpty(updateScannerSettingContent) && !string.IsNullOrWhiteSpace(updateScannerSettingContent))
                {
                    var commontResultObject = JsonConvert.DeserializeObject<CommonJsonResult<string>>(updateScannerSettingContent);
                    if (commontResultObject != null && commontResultObject.Success)
                    {
                        result = true;
                    }
                    else
                    {
                        result = false;
                        _logger.LogError(updateScannerSettingContent);
                    }
                }
                else
                {
                    result = true;
                }
            }

還有一個輔助類型:

/// <summary>
    /// 該類型定義了以 JSON 為返回結(jié)果的通用數(shù)據(jù)格式。
    /// </summary>
    /// <typeparam name="TResult">結(jié)果的返回類型。</typeparam>
    public sealed class CommonJsonResult<TResult>
    {
        /// <summary>
        /// 獲取或者設(shè)置操作的結(jié)果是成功還是失敗,True 表示操作成功,F(xiàn)alse 表示操作失敗。
        /// </summary>
        public bool Success { get; set; }
        /// <summary>
        /// 獲取或者設(shè)置操作的結(jié)果編碼值。
        /// </summary>
        public int StateCode { get; set; }
        /// <summary>
        /// 獲取或者設(shè)置操作的提示信息。
        /// </summary>
        public string? Message { get; set; }
        /// <summary>
        /// 獲取或者設(shè)置數(shù)據(jù)的結(jié)果。
        /// </summary>
        public TResult? DataResult { get; set; }
    }

到此這篇關(guān)于在 Net7.0 環(huán)境下使用 RestSharp 發(fā)送 Http(FromBody和FromForm)請求的文章就介紹到這了,更多相關(guān)RestSharp 發(fā)送 Http請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • asp.net core標簽助手的高級用法TagHelper+Form

    asp.net core標簽助手的高級用法TagHelper+Form

    這篇文章主要為大家詳細介紹了asp.net core標簽助手的高級用法TagHelper+Form,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • LINQ 標準查詢操作符

    LINQ 標準查詢操作符

    本文介紹了LINQ標準查詢操作符。沒有這些操作符,LINQ就不會存在。本文為理解這些操作符的功能提供了很好的基礎(chǔ)。了解它們將會很有幫助,因為LINQ的各種Provider都是基于這些操作符來完成各自豐富的功能。
    2010-02-02
  • ASP.NET網(wǎng)站實時顯示時間的方法

    ASP.NET網(wǎng)站實時顯示時間的方法

    這篇文章主要介紹了ASP.NET網(wǎng)站實時顯示時間的方法,主要通過AJAX控件來實現(xiàn)該功能,是非常具有實用價值的技巧,需要的朋友可以參考下
    2014-11-11
  • ASP.NET實現(xiàn)讀取Excel內(nèi)容并在Web上顯示

    ASP.NET實現(xiàn)讀取Excel內(nèi)容并在Web上顯示

    這篇文章主要介紹了ASP.NET實現(xiàn)讀取Excel內(nèi)容并在Web上顯示,很實用的一個技巧,需要的朋友可以參考下
    2014-08-08
  • MVC使用MvcPager實現(xiàn)分頁效果

    MVC使用MvcPager實現(xiàn)分頁效果

    這篇文章主要為大家詳細介紹了MVC使用MvcPager實現(xiàn)分頁效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • c#  操作符?? null coalescing operator

    c# 操作符?? null coalescing operator

    ?? "null coalescing" operator 是c#新提供的一個操作符,這個操作符提供的功能是判斷左側(cè)的操作數(shù)是否是null,如果是則返回結(jié)果是右側(cè)的操作數(shù);非null則返回左側(cè)的操作數(shù)。
    2009-06-06
  • ASP.NET通用權(quán)限驗證的實現(xiàn)代碼思路

    ASP.NET通用權(quán)限驗證的實現(xiàn)代碼思路

    這篇文章主要介紹了ASP.NET通用權(quán)限驗證的實現(xiàn)代碼思路,需要的朋友可以參考下
    2015-12-12
  • C#開發(fā)微信 二維碼鼠標滑動 圖像顯示隱藏效果(推薦)

    C#開發(fā)微信 二維碼鼠標滑動 圖像顯示隱藏效果(推薦)

    客戶端微信在二維碼狀態(tài)下,鼠標滑過,會有一張手機的圖片滑動滑出,從隱藏到顯示,從顯示到隱藏。效果非常棒,本文思路介紹明確,感興趣的朋友一起看看吧
    2016-11-11
  • C# .Net動態(tài)調(diào)用webService實現(xiàn)思路及代碼

    C# .Net動態(tài)調(diào)用webService實現(xiàn)思路及代碼

    動態(tài)調(diào)用web服務(wù)將執(zhí)行以下步驟:獲取WSDL/生成客戶端代理類代碼/設(shè)定編譯參數(shù)/編譯代理類/生成代理實例,并調(diào)用方法,很詳細的,感興趣的你可不要錯過了哈
    2013-02-02
  • IIS上部署Asp.net core Webapi的實現(xiàn)步驟

    IIS上部署Asp.net core Webapi的實現(xiàn)步驟

    ASP.NET Core Web API是構(gòu)建RESTful應(yīng)用程序的理想平臺,本文主要介紹了IIS上部署Asp.net core Webapi的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07

最新評論

长治市| 松原市| 景宁| 博乐市| 沙坪坝区| 蒙山县| 金华市| 泗水县| 黎城县| 张家港市| 陇川县| 青岛市| 宁津县| 荣昌县| 凤台县| 乌什县| 大兴区| 张家口市| 唐山市| 元氏县| 宜君县| 大方县| 曲松县| 普兰县| 麻江县| 蓬溪县| 商河县| 麦盖提县| 秀山| 永定县| 周宁县| 平顺县| 巴塘县| 新民市| 当阳市| 贞丰县| 怀安县| 台江县| 武清区| 宁南县| 刚察县|