实例介绍
RestSharp是为.NET平台设计的一款简易REST和HTTP API客户端库。它实质上是对HttpClient的封装,并非一个独立的客户端库。
RestSharp的特点包括:
- 支持任意类型的默认参数,不仅限于头部参数。
- 能够向请求中添加各种类型的参数,如查询参数、URL片段、头部、Cookie或请求体。
- 提供多种添加请求体的方式,包括JSON、XML和表单数据。
- 内置JSON和XML的序列化与反序列化功能。
从v107版本开始,RestSharp转向使用HttpClient。同时,我们废弃了以下内容:
- 不再使用SimpleJson,改为使用System.Text.Json.JsonSerializer。
- 废弃IRestRequest和IRestResponse接口,改为使用具体的实现类。
- 不再使用Http和IHttp这些仅作为封装的类。
【实例截图】
【核心代码】
文件清单
└── RestSharp-f3642c1bdc937f02c5a178305c1a437b96a39189
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── RestSharp.sln
├── RestSharp.sln.DotSettings
├── RestSharp.snk
├── SECURITY.md
├── benchmarks
│ └── RestSharp.Benchmarks
│ ├── Program.cs
│ ├── Requests
│ │ ├── AddObjectToRequestParametersBenchmarks.cs
│ │ └── Data.cs
│ ├── RestSharp.Benchmarks.csproj
│ └── Serializers
│ ├── JsonNetSerializeBenchmarks.cs
│ └── TestClass.cs
├── docs
│ ├── CI-CD_DOCUMENTATION
│ │ ├── CI-CD_DOCUMENTATION.md
│ │ ├── CodeQL_alert_page.png
│ │ ├── CodeQL_results.png
│ │ ├── Dependabot_PRs.png
│ │ ├── Dependabot_alert_page.png
│ │ ├── Dependabot_alerts_page.png
│ │ ├── Dependabot_dependency_graph.png
│ │ ├── Dependabot_log_page.png
│ │ └── Dependabot_tab.png
│ ├── README.md
│ ├── authenticators.md
│ ├── error-handling.md
│ ├── intro.md
│ ├── serialization.md
│ ├── support
│ │ └── README.md
│ ├── usage.md
│ └── v107
│ ├── README.md
│ └── interfaces.md
├── gen
│ └── SourceGenerator
│ ├── ImmutableGenerator.cs
│ └── SourceGenerator.csproj
├── global.json
├── package.json
├── props
│ └── Common.props
├── restsharp.png
├── src
│ ├── Directory.Build.props
│ ├── RestSharp
│ │ ├── AsyncHelpers.cs
│ │ ├── Authenticators
│ │ │ ├── AuthenticatorBase.cs
│ │ │ ├── HttpBasicAuthenticator.cs
│ │ │ ├── IAuthenticator.cs
│ │ │ ├── JwtAuthenticator.cs
│ │ │ ├── OAuth
│ │ │ │ ├── Enums.cs
│ │ │ │ ├── Extensions
│ │ │ │ │ ├── OAuthExtensions.cs
│ │ │ │ │ ├── StringExtensions.cs
│ │ │ │ │ └── TimeExtensions.cs
│ │ │ │ ├── OAuth1Authenticator.cs
│ │ │ │ ├── OAuthTools.cs
│ │ │ │ ├── OAuthWorkflow.cs
│ │ │ │ ├── WebPair.cs
│ │ │ │ └── WebPairCollection.cs
│ │ │ └── OAuth2
│ │ │ ├── OAuth2AuthorizationRequestHeaderAuthenticator.cs
│ │ │ └── OAuth2UriQueryParameterAuthenticator.cs
│ │ ├── BuildUriExtensions.cs
│ │ ├── ContentType.cs
│ │ ├── Ensure.cs
│ │ ├── Enum.cs
│ │ ├── Extensions
│ │ │ ├── CollectionExtensions.cs
│ │ │ ├── CookieContainerExtensions.cs
│ │ │ ├── GenerateImmutableAttribute.cs
│ │ │ ├── HttpHeadersExtensions.cs
│ │ │ ├── HttpResponseExtensions.cs
│ │ │ ├── ReflectionExtensions.cs
│ │ │ ├── StreamExtensions.cs
│ │ │ ├── StringExtensions.cs
│ │ │ └── WithExtensions.cs
│ │ ├── IRestClient.cs
│ │ ├── Interceptors
│ │ │ └── Interceptor.cs
│ │ ├── KnownHeaders.cs
│ │ ├── Options
│ │ │ └── RestClientOptions.cs
│ │ ├── Parameters
│ │ │ ├── BodyParameter.cs
│ │ │ ├── DefaultParameters.cs
│ │ │ ├── FileParameter.cs
│ │ │ ├── GetOrPostParameter.cs
│ │ │ ├── HeaderParameter.cs
│ │ │ ├── ObjectParser.cs
│ │ │ ├── Parameter.cs
│ │ │ ├── ParametersCollection.cs
│ │ │ ├── ParametersCollectionExtensions.cs
│ │ │ ├── QueryParameter.cs
│ │ │ ├── RequestParameters.cs
│ │ │ └── UrlSegmentParameter.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── IsExternalInit.cs
│ │ ├── Request
│ │ │ ├── BodyExtensions.cs
│ │ │ ├── HttpRequestMessageExtensions.cs
│ │ │ ├── PropertyCache.Populator.RequestProperty.cs
│ │ │ ├── PropertyCache.Populator.cs
│ │ │ ├── PropertyCache.cs
│ │ │ ├── RequestContent.cs
│ │ │ ├── RequestHeaders.cs
│ │ │ ├── RestRequest.cs
│ │ │ ├── RestRequestExtensions.cs
│ │ │ ├── RestXmlRequest.cs
│ │ │ └── UriExtensions.cs
│ │ ├── Response
│ │ │ ├── ResponseThrowExtension.cs
│ │ │ ├── RestResponse.cs
│ │ │ └── RestResponseBase.cs
│ │ ├── RestClient.Async.cs
│ │ ├── RestClient.Extensions.Delete.cs
│ │ ├── RestClient.Extensions.Get.cs
│ │ ├── RestClient.Extensions.Head.cs
│ │ ├── RestClient.Extensions.Options.cs
│ │ ├── RestClient.Extensions.Params.cs
│ │ ├── RestClient.Extensions.Patch.cs
│ │ ├── RestClient.Extensions.Post.cs
│ │ ├── RestClient.Extensions.Put.cs
│ │ ├── RestClient.Extensions.cs
│ │ ├── RestClient.cs
│ │ ├── RestSharp.csproj
│ │ ├── RestSharp.csproj.DotSettings
│ │ ├── Serializers
│ │ │ ├── DeseralizationException.cs
│ │ │ ├── IDeserializer.cs
│ │ │ ├── IRestSerializer.cs
│ │ │ ├── ISerializer.cs
│ │ │ ├── IWithDateFormat.cs
│ │ │ ├── IWithRootElement.cs
│ │ │ ├── Json
│ │ │ │ ├── RestClientExtensions.cs
│ │ │ │ └── SystemTextJsonSerializer.cs
│ │ │ ├── RestSerializers.cs
│ │ │ ├── SerializerConfig.cs
│ │ │ ├── SerializerRecord.cs
│ │ │ └── Xml
│ │ │ ├── DotNetXmlDeserializer.cs
│ │ │ ├── DotNetXmlSerializer.cs
│ │ │ ├── DotNetXmlSerializerClientExtensions.cs
│ │ │ ├── IXmlDeserializer.cs
│ │ │ ├── IXmlSerializer.cs
│ │ │ └── XmlRestSerializer.cs
│ │ └── SimpleClientFactory.cs
│ ├── RestSharp.Serializers.CsvHelper
│ │ ├── CsvHelperSerializer.cs
│ │ ├── RestClientExtensions.cs
│ │ └── RestSharp.Serializers.CsvHelper.csproj
│ ├── RestSharp.Serializers.NewtonsoftJson
│ │ ├── JsonNetSerializer.cs
│ │ ├── RestClientExtensions.cs
│ │ ├── RestSharp.Serializers.NewtonsoftJson.csproj
│ │ └── WriterBuffer.cs
│ └── RestSharp.Serializers.Xml
│ ├── DeserializeAsAttribute.cs
│ ├── RestSharp.Serializers.Xml.csproj
│ ├── SerializeAsAttribute.cs
│ ├── XmlAttributeDeserializer.cs
│ ├── XmlDeserializer.cs
│ ├── XmlExtensions.cs
│ ├── XmlSerializer.cs
│ └── XmlSerializerClientExtensions.cs
├── test
│ ├── Directory.Build.props
│ ├── RestSharp.InteractiveTests
│ │ ├── AuthenticationTests.cs
│ │ ├── Program.cs
│ │ ├── RestSharp.InteractiveTests.csproj
│ │ └── TwitterClient.cs
│ ├── RestSharp.Tests
│ │ ├── AddRangeTests.cs
│ │ ├── AuthenticatorTests.cs
│ │ ├── HostHeaderTests.cs
│ │ ├── HttpBasicAuthenticatorTests.cs
│ │ ├── JwtAuthTests.cs
│ │ ├── MultipartFormTests.cs
│ │ ├── OAuth1AuthenticatorTests.cs
│ │ ├── OAuthTests.cs
│ │ ├── ObjectParameterTests.ArrayData.cs
│ │ ├── ObjectParameterTests.CsvData.cs
│ │ ├── ObjectParameterTests.FormattedData.cs
│ │ ├── ObjectParameterTests.NamedData.cs
│ │ ├── ObjectParameterTests.cs
│ │ ├── ObjectParserTests.cs
│ │ ├── OptionsTests.cs
│ │ ├── ParametersTests.cs
│ │ ├── RequestHeaderTests.cs
│ │ ├── RestClientTests.cs
│ │ ├── RestContentTests.cs
│ │ ├── RestRequestParametersTests.cs
│ │ ├── RestRequestTests.cs
│ │ ├── RestSharp.Tests.csproj
│ │ ├── SampleData
│ │ │ ├── 4sq.json
│ │ │ ├── GenericWithList.json
│ │ │ ├── bearertoken.json
│ │ │ ├── datetimes.json
│ │ │ ├── iso8601datetimes.json
│ │ │ ├── jsonarray.json
│ │ │ ├── jsondictionary.json
│ │ │ ├── jsondictionary_KeysType.json
│ │ │ ├── jsondictionary_null.json
│ │ │ ├── jsonenums.json
│ │ │ ├── jsonenumtypes.json
│ │ │ ├── jsonlists.json
│ │ │ ├── newdatetimes.json
│ │ │ ├── objectproperty.json
│ │ │ ├── person.json
│ │ │ ├── sojson.json
│ │ │ ├── timespans.json
│ │ │ └── underscore_prefix.json
│ │ ├── StringExtensionsTests.cs
│ │ └── UrlBuilderTests.cs
│ ├── RestSharp.Tests.Integrated
│ │ ├── Assets
│ │ │ ├── Koala.jpg
│ │ │ ├── Koala帣剶.jpg
│ │ │ ├── TestFile.txt
│ │ │ └── Test啈.txt
│ │ ├── Authentication
│ │ │ ├── AuthenticationTests.cs
│ │ │ └── OAuth2Tests.cs
│ │ ├── CompressionTests.cs
│ │ ├── CookieTests.cs
│ │ ├── DefaultParameterTests.cs
│ │ ├── DownloadFileTests.cs
│ │ ├── Fixtures
│ │ │ ├── CaptureFixture.cs
│ │ │ ├── OutputLogger.cs
│ │ │ └── RequestBodyFixture.cs
│ │ ├── HttpClientTests.cs
│ │ ├── HttpHeadersTests.cs
│ │ ├── Interceptor
│ │ │ └── InterceptorTests.cs
│ │ ├── JsonBodyTests.cs
│ │ ├── MultipartFormDataTests.cs
│ │ ├── NonProtocolExceptionHandlingTests.cs
│ │ ├── OAuth1Tests.cs
│ │ ├── PostTests.cs
│ │ ├── ProxyTests.cs
│ │ ├── PutTests.cs
│ │ ├── RedirectTests.cs
│ │ ├── RequestBodyTests.cs
│ │ ├── RequestFailureTests.cs
│ │ ├── RequestHeadTests.cs
│ │ ├── RequestTests.cs
│ │ ├── ResourceStringParametersTests.cs
│ │ ├── RestSharp.Tests.Integrated.csproj
│ │ ├── RootElementTests.cs
│ │ ├── Server
│ │ │ ├── Handlers
│ │ │ │ ├── CookieHandlers.cs
│ │ │ │ ├── FileHandlers.cs
│ │ │ │ ├── FormRequest.cs
│ │ │ │ ├── HeaderHandlers.cs
│ │ │ │ └── RequestHandlers.cs
│ │ │ ├── Models.cs
│ │ │ ├── TestServer.cs
│ │ │ └── TestServerFixture.cs
│ │ ├── StatusCodeTests.cs
│ │ ├── StructuredSyntaxSuffixTests.cs
│ │ ├── UploadFileTests.cs
│ │ └── xunit.runner.json
│ ├── RestSharp.Tests.Serializers.Csv
│ │ ├── CsvHelperTests.cs
│ │ ├── RestSharp.Tests.Serializers.Csv.csproj
│ │ └── TestObject.cs
│ ├── RestSharp.Tests.Serializers.Json
│ │ ├── NewtonsoftJson
│ │ │ ├── IntegratedSimpleTests.cs
│ │ │ ├── IntegratedTests.cs
│ │ │ └── SerializationTests.cs
│ │ ├── RestSharp.Tests.Serializers.Json.csproj
│ │ ├── SampleData.cs
│ │ └── SystemTextJson
│ │ └── SystemTextJsonTests.cs
│ ├── RestSharp.Tests.Serializers.Xml
│ │ ├── NamespacedXmlTests.cs
│ │ ├── RestSharp.Tests.Serializers.Xml.csproj
│ │ ├── SampleClasses
│ │ │ ├── BearerToken.cs
│ │ │ ├── BooleanTest.cs
│ │ │ ├── ColorWithValue.cs
│ │ │ ├── DeserializeAsTest
│ │ │ │ └── misc.cs
│ │ │ ├── EmployeeTracker.cs
│ │ │ ├── EnumTest.cs
│ │ │ ├── Goodreads.cs
│ │ │ ├── GoogleWeatherWithAttributes.cs
│ │ │ ├── HeaderAndRows.cs
│ │ │ ├── JsonLists.cs
│ │ │ ├── Lastfm.cs
│ │ │ ├── ListSamples.cs
│ │ │ ├── Oddball.cs
│ │ │ ├── SOUser.cs
│ │ │ ├── Struct.cs
│ │ │ ├── TwilioCallList.cs
│ │ │ ├── eventful.cs
│ │ │ ├── foursq.cs
│ │ │ ├── googleweather.cs
│ │ │ ├── misc.cs
│ │ │ ├── nullables.cs
│ │ │ └── twitter.cs
│ │ ├── SampleData
│ │ │ ├── Goodreads.xml
│ │ │ ├── GoodreadsFormatError.xml
│ │ │ ├── GoogleWeather.xml
│ │ │ ├── InlineListSample.xml
│ │ │ ├── Lastfm.xml
│ │ │ ├── ListWithAttributes.xml
│ │ │ ├── NestedListSample.xml
│ │ │ ├── boolean_from_number.xml
│ │ │ ├── boolean_from_string.xml
│ │ │ ├── deserialize_as_list.xml
│ │ │ ├── directlists.xml
│ │ │ ├── eventful.xml
│ │ │ ├── header_and_rows.xml
│ │ │ ├── restsharp.nuspec
│ │ │ └── xmllists.xml
│ │ ├── XmlAttributeDeserializerTests.cs
│ │ ├── XmlDeserializerTests.cs
│ │ └── XmlSerializerTests.cs
│ └── RestSharp.Tests.Shared
│ ├── Extensions
│ │ ├── StreamExtensions.cs
│ │ └── UriExtensions.cs
│ ├── Fixtures
│ │ ├── Handlers.cs
│ │ ├── HttpServerFixture.cs
│ │ ├── RequestBodyCapturer.cs
│ │ ├── SimpleServer.cs
│ │ ├── TestHttpServer.cs
│ │ ├── TestHttpServerExtensions.cs
│ │ ├── TestRequestHandler.cs
│ │ └── WebServer.cs
│ └── RestSharp.Tests.Shared.csproj
└── yarn.lock
53 directories, 298 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论