使用RestSharp访问REST service

无意中发现了友人的博客园文章,在发现这小子都排200+了,发现自己居然好多年都没有更新过博客园,而且只有两篇文章,懒惰啊,看来以后也需要把该写的,改记的都写下来,给自己留个纪念也给别人留些帮助,作为一个来园子都8年的人,该做点贡献不是。

最近需要跟Desk.com做集成,翻了他们的Document和Sample,发现也没啥有用的东西,对Salesforce他家的东西接触的也不多,官网里只介绍了如何发送请求,如何通过验证,以及有什么对象等等,动手还得自己来,既然是REST Service那就从类库开始,使用Nuget下载最新的RestSharp类库,添加引用,动手操作。

实际代码也不复杂,先实例化一个客户端出来,里面添加相应的验证信息,然后发送Request去请求响应的对象,对象可以参照他们的开发文档。

private RestClient GetClient()
        {
            return new RestClient("https://xxx.desk.com/")
            {
                Authenticator = OAuth1Authenticator.ForProtectedResource(
                    Application.Default.Key, // Key
                    Application.Default.KeySecret, // Key Secret
                    Application.Default.Token, // Token
                    Application.Default.TokenSecret // Token Secret
                    )
            };
        }

        private T Request<T>(string resource, Method method, IEnumerable<Parameter> parameters = null, object body = null) where T : new()
        {
            return RequestAtBase<T>("api/v2/" + resource, method, parameters, body);
        }
        private T RequestAtBase<T>(string resource, Method method, IEnumerable<Parameter> parameters = null, object body = null) where T : new()
        {
            var request = new RestRequest()
            {
                Method = method,
                Resource = resource,
                RequestFormat = DataFormat.Json,
            };
            if (parameters != null) parameters.ToList().ForEach(parameter => request.AddParameter(parameter));
            if (body != null) request.AddBody(body);

            var result = GetClient().Execute<T>(request);
            if (Convert.ToInt32(result.StatusCode) < 200 || Convert.ToInt32(result.StatusCode) > 300) throw new OczDeskApiException<T>(result);

            return result.Data;
        }

  

转载于:https://www.cnblogs.com/petersun/p/3924600.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值