博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用api 的方式
阅读量:4703 次
发布时间:2019-06-10

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

There are several ways to consume a RESTful API in C#:

  1. HttpWebRequest/Response class
  2. WebClient class
  3. HttpClient class
  4. RestSharp NuGet package
  5. ServiceStack Http Utils

HttpWebRequest/Response Class

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.github.com/repos/restsharp/restsharp/releases");request.Method = "GET";request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;HttpWebResponse response = (HttpWebResponse)request.GetResponse();string content = string.Empty;using (Stream stream = response.GetResponseStream()){	using (StreamReader sr = new StreamReader(stream))	{		content = sr.ReadToEnd();	}}var releases = JArray.Parse(content);

  

WebClient Class

var client = new WebClient();client.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");var response = client.DownloadString("https://api.github.com/repos/restsharp/restsharp/releases");var releases = JArray.Parse(response);

  

HttpClient Class

using (var httpClient = new HttpClient()){	httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0     (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)      Chrome/58.0.3029.110 Safari/537.36");	var response = httpClient.GetStringAsync(new Uri(url)).Result;	var releases = JArray.Parse(response);}

  

RestSharp

RestSharp is the OpenSource alternative to standard .NET libraries and one of the coolest .NET libraries out there. It is available as a NuGet package, and there are a few reasons why you should consider trying it out.

Like HttpClientRestSharp is a modern and comprehensive library, easy and pleasant to use, while still having support for older versions of .NET Framework. It has inbuilt  and  but allows you to override them with your custom ones. It is  and supports OAuth1, OAuth2, Basic, NTLM and Parameter-based Authentication. It can also work synchronously or asynchronously. There is a lot more to this library, but these are some of the great benefits it offers. For the detailed information on usage and capabilities of RestSharp, you can visit the RestSharp.

Now let’s try to get a list of RestSharp releases using RestSharp.

var client = new RestClient(url);IRestResponse response = client.Execute(new RestRequest());var releases = JArray.Parse(response.Content);

  

ServiceStack Http Utils

var response = url.GetJsonFromUrl(requestFilter: webReq =>{	webReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64)                         AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";});var releases = JArray.Parse(response);

  

转载于:https://www.cnblogs.com/hbsfgl/p/7991958.html

你可能感兴趣的文章
深度学习中优化【Normalization】
查看>>
POJ2309BST(树状数组)
查看>>
洛谷P2114 起床困难综合症【位运算】【贪心】
查看>>
Ubuntu+caffe训练cifar-10数据集
查看>>
net 把指定 URI 的资源下载到本地
查看>>
js中 $ 未定义 或者 “xxx”未定义
查看>>
Sublime3插件安装
查看>>
[转]大型网站系统架构的演化
查看>>
非常好的JSUI
查看>>
基于EasyNVR摄像机无插件直播流媒体服务器实现类似于单点登录功能的免登录直播功能...
查看>>
python学习0day
查看>>
课堂练习之检测水军
查看>>
函数指针的使用
查看>>
位图数据结构的操作
查看>>
azkaban用户管理及权限配置
查看>>
GCD学习笔记
查看>>
PHP......会话控制SESSION与COOKIE
查看>>
[转]AchartEngineActivity引擎绘制柱状图、曲线图
查看>>
[转]javascript实现限制上传文件的大小
查看>>
我的Java设计模式-策略模式
查看>>