<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > c#教程 >
        • C# RestSharp 使用

        本站最新發布   C#從入門到精通
        試聽地址  
        http://www.squ68.com/eschool/CSharpxin3721/

        1.什么是RestSharp

        RestSharp是一個輕量的,不依賴任何第三方的組件或者類庫的Http的組件。它具有以下優點:

        支持.NET 3.5+,Silverlight 4, Windows Phone 7, Mono, MonoTouch, Mono for Android, Compact Framework 3.5等

        通過NuGet方便引入到任何項目

        可以自動反序列化XML和JSON

        支持自定義的序列化與反序列化

        自動檢測返回的內容類型

        支持HTTP的GET, POST, PUT, HEAD, OPTIONS, DELETE等操作

        可以上傳多文件

        支持oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators等授權驗證等

        支持異步操作

        極易上手并應用到任何項目中

        2. 如何使用nuget添加restsharp到工程:

        3.項目中使用舉例:

        首先定義一個GetClient 方法:

        //使用方法之前獲得cookie并放入RestClient對象
        public static RestClient GetClient(List<Cookie> cookies)
        {
        		      //RestClient傳遞的string型的url
              var client = new RestClient(TestConfigurations.Domain.AppendPathSegments("app"));
              client.CookieContainer = new System.Net.CookieContainer();
              cookies.ForEach(c => client.CookieContainer.Add(new System.Net.Cookie(c.Name, c.Value, c.Path, c.Domain)));
              return client;
        }
        //封裝了一個方法來給restClient調用
        public static IRestResponse SendRequest(this RestClient client, Uri requestUrl, Method method, Dictionary<string, string> parameters = null)
        {
              var request = client.FirmRequest(method);
              client.BaseUrl = requestUrl;
              if (parameters != null)
              {
                   foreach (var p in parameters)
                   {
                       request.AddParameter(p.Key, p.Value);
                   }
              }
        	      //調用Execute方法來執行request
              return client.Execute(request);
        }
        

        如果出現網絡錯誤, RestResponse.ResponseStatus 會設置 ResponseStatus.Error, 反之則是ResponseStatus.Completed.

        如果需要訪問 HTTP status code, 可以在 RestResponse.StatusCode 中找到。

        //封裝了一個方法來生成request對象,并且賦予header的必要信息以及傳遞get/post方式
        public static RestRequest FirmRequest(this RestClient client, Method method)
        {
              var request = new RestRequest();
              request.Method = method;
              request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
              request.AddHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
              return request;
        }
        

        下面是調用方法的例子:

        //把cookies傳入client
        var client = HttpClientUtils.GetClient(Cookies);
        //生成需要使用的參數,add到request內
        var parameters = GetPage<AddUserPage>().EditUserForm.GetSubmitParameters();
        parameters["BillableHourTarget"] = target;
        //調用方法
        client.SendRequest(new Uri(I.GetUrl()), Method.POST, parameters);
        

        也可以使用反序列化,生成JObject(把一個json對象反序列化為.net object

        var jresult = (JObject)JsonConvert.DeserializeObject(result.Content);
        					if (jresult["Success"].ToString().ToLower() == "true")
           //do something here
        

        4.RestSharp反序列化

        application/json - JsonDeserializer

        application/xml - XmlDeserializer

        text/json - JsonDeserializer

        text/xml - XmlDeserializer

        5. 其他用法:

        從IRestResponse中獲取內容:

        var client = HttpClientUtils.GetClient(cookies);
        result = client.SendRequest(new Uri(url), RestSharp.Method.GET).Content;  
        

        使用JsonConvert反序列化

        var jtokenBudget = (JToken)JsonConvert.DeserializeObject(client.SendRequest(calendarUrl, g

        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看