C# consume RestApi

1.RestSharp.

Nuget install RestSharp,Newtonsoft.Json.

复制代码
using System;
using RestSharp;
using Newtonsoft.Json.Linq;

namespace DBDll
{
    public class RestSharpApi
    {
        public static void GetWebResonse(string baseUrl = "https://api.github.com/repos/restsharp/restsharp/releases")
        {            
            var client = new RestClient(baseUrl);
            IRestResponse response = client.Execute(new RestRequest());
            //return the formatted json string from a clumsy json string.
            var releases = JArray.Parse(response.Content);
            Console.WriteLine(releases);
        }
    }
}
复制代码

2.HttpWebRequest

复制代码
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;

namespace DBDll
{
    public class HttpWebRequestDemo
    {
        public static void HttpWebRequestShow(string baseUrl = "https://api.github.com/repos/restsharp/restsharp/releases")
        {
            var httpRequest = (HttpWebRequest)WebRequest.Create(baseUrl);
            httpRequest.Method = "GET";
            httpRequest.UserAgent = "Mozilla / 5.0(Windows NT 6.1; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 58.0.3029.110 Safari / 537.36";
            httpRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            string content = string.Empty;
            using(var responseStream=httpResponse.GetResponseStream())
            {
                using(var sr=new StreamReader(responseStream))
                {
                    content = sr.ReadToEnd();
                }
            }
            Console.WriteLine(content);
        }
    }
}
复制代码

3.HttpClient

复制代码
using System;
using System.IO;
using System.Net.Http;

namespace DBDll
{
    public class HttpClientDemo
    {
        public static void HttpClientShow(string url)
        {
            HttpClient httpClient = new HttpClient();
            var response = httpClient.GetStringAsync(url);            
            Console.WriteLine(response.Result);
            string textFile = Directory.GetCurrentDirectory() + "//" + "web.txt";
            using(StreamWriter webWriter=new StreamWriter(textFile,true))
            {
                webWriter.WriteLine(response.Result+"\n");
            }
            
        }        
    }
}
复制代码

 4.ServiceStack.

Install ServiceStack in Nuget.

复制代码
using System;
using ServiceStack;

namespace DBDll
{
    public class ServiceStackDemo
    {
        public static void ServiceStackShow(string url)
        {
            var response= url.GetJsonFromUrl();
            Console.WriteLine(response);
        }
    }
}
复制代码

 

posted @   FredGrit  阅读(373)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示