博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用RestSharp访问REST service
阅读量:5082 次
发布时间:2019-06-13

本文共 1917 字,大约阅读时间需要 6 分钟。

无意中发现了友人的博客园文章,在发现这小子都排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
(string resource, Method method, IEnumerable
parameters = null, object body = null) where T : new() { return RequestAtBase
("api/v2/" + resource, method, parameters, body); } private T RequestAtBase
(string resource, Method method, IEnumerable
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
(request); if (Convert.ToInt32(result.StatusCode) < 200 || Convert.ToInt32(result.StatusCode) > 300) throw new OczDeskApiException
(result); return result.Data; }

  

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

你可能感兴趣的文章
kmp-洛谷P2375 动物园
查看>>
杂曲歌辞·杨柳枝
查看>>
swiftmailer时没有设置https的选项,才可以发送成功。在linux下面
查看>>
C#程序分析
查看>>
(6)javascript 基本概念--- -- 函数
查看>>
在Windows服务中托管 ASP.NET Core的坑
查看>>
Linux MySQL主从复制(Replication)配置
查看>>
多表联查
查看>>
suoi46 最大和和 (线段树)
查看>>
JQ轮播小demo
查看>>
【原创】大叔问题定位分享(20)hdfs文件create写入正常,append写入报错
查看>>
2016 西班牙 国家德比(西甲31轮)
查看>>
CArichive每次读写一行
查看>>
让QT支持中文的方法
查看>>
dos批处理知识
查看>>
多文档界面的实现(DotNetBar的superTabControl)
查看>>
3.字符串
查看>>
关于深复制与浅复制
查看>>
js 重写a标签的href属性和onclick事件
查看>>
关于需要授权处理获取数据的跳转
查看>>