restsharp.dll_restbed

2022-10-05 09:09:55 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、RestSharp简绍

RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。RestSharp具体以下特性;

1、支持.NET 3.5 ,Silverlight 4, Windows Phone 7, Mono, MonoTouch, Mono for Android, Compact Framework 3.5等   2、通过NuGet方便引入到任何项目 ( Install-Package restsharp )   3、可以自动反序列化XML和JSON   4、支持自定义的序列化与反序列化   5、自动检测返回的内容类型   6、支持HTTP的GET, POST, PUT, HEAD, OPTIONS, DELETE等操作   7、可以上传多文件   8、支持oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators等授权验证等   9、支持异步操作   10、极易上手并应用到任何项目中

以上是RestSharp的主要特点,通用它你可以很容易地用程序来处理一系列的网络请求(GET, POST, PUT, HEAD, OPTIONS, DELETE),并得到返回结果

下面是官方的应用示例,使用起来简单快捷:

代码语言:javascript复制
var client = new RestClient("http://example.com");
// client.Authenticator = new HttpBasicAuthenticator(username, password);

var request = new RestRequest("resource/{id}", Method.POST);
request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method
request.AddUrlSegment("id", "123"); // replaces matching token in request.Resource

// add parameters for all properties on an object
request.AddObject(object);

// or just whitelisted properties
request.AddObject(object, "PersonId", "Name", ...);

// easily add HTTP Headers
request.AddHeader("header", "value");

// add files to upload (works with compatible verbs)
request.AddFile("file", path);

// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string

// or automatically deserialize result
// return content type is sniffed but can be explicitly set via RestClient.AddHandler();
IRestResponse<Person> response2 = client.Execute<Person>(request);
var name = response2.Data.Name;

// or download and save file to disk
client.DownloadData(request).SaveAs(path);

// easy async support
await client.ExecuteAsync(request);

// async with deserialization
var asyncHandle = client.ExecuteAsync<Person>(request, response => {
   Console.WriteLine(response.Data.Name);
});

// abort the request on demand
asyncHandle.Abort();

二、RestSharp应用实例

代码语言:javascript复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using RestSharp;

namespace RestFulClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Restful客户端第三方RestSharpDemo测试";
            //方法二、使用第三方RestSharp
            var client = new RestSharp.RestClient("http://127.0.0.1:7788");
            var requestGet = new RestRequest("PersonInfoQuery/{name}", Method.GET);
            requestGet.AddUrlSegment("name", "王二麻子");
            IRestResponse response = client.Execute(requestGet);
            var contentGet = response.Content;
            Console.WriteLine("GET方式获取结果:"   contentGet);

            var requestPost = new RestRequest("PersonInfoQuery/Info", Method.POST);
            Info info = new Info();
            info.ID = 1;
            info.Name = "张三";
            var json = JsonConvert.SerializeObject(info);
            requestPost.AddParameter("application/json", json, ParameterType.RequestBody);
            IRestResponse responsePost = client.Execute(requestPost);
            var contentPost = responsePost.Content;
            Console.WriteLine("POST方式获取结果:"   contentPost);
            Console.Read();
        }
    }

    [Serializable]
    public class Info
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

0 人点赞