精华内容
下载资源
问答
  • restsharp 下载文件
    2021-07-07 20:27:49

    .NET Core(C#)使用RestSharp可以实现一些后台Http请求相关操作,本文主要介绍通过RestSharp执行GET和POST请求,在下载很大文件时需要大量内存时通过文件流优化,以请求时自动管理cookie。
    原文地址:.NET Core(C#) RestSharp GET和POST请求、下载大文件及cookie管理

    更多相关内容
  • RestSharp稳定版

    2020-10-23 09:15:26
    RestSharp稳定版,保证可用。本人亲自试验!dll支持4.0、3.5、net4-client、net35-client,找了很久,才发现一个真正可用的,大家注意看我发的版本。
  • restsharp中文文档

    2018-11-28 09:14:47
    新鲜的restsharp中文文档,纯手工翻译,有需要请自行下载
  • 环境: vs2019 16.5.1 aspnetcore 3.1.1 fiddler restsharp 106.10.1 说明: 要测试restsharp的功能,首先需要了解http传参和...c#使用Http上传下载文件 一、首先准备webapi项目 using System; using System.C......

    环境:

    • vs2019 16.5.1
    • aspnetcore 3.1.1
    • fiddler
    • restsharp 106.10.1

    说明:
    要测试restsharp的功能,首先需要了解http传参和下载上传文件的原理,请参考:
    c#:从http请求报文看http协议中参数传递的几种方式
    c#使用Http上传下载文件

    .net core/.net 5/.net 6 及以上框架,建议直接使用 HttpClient,参照:《c#:HttpClient使用详解》

    一、restsharp介绍

    RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。RestSharp具体以下特性:
    1、支持.NET 3.5+,Silverlight 4, Windows Phone 7, Mono, MonoTouch, Mono for Android, Compact Framework 3.5,.NET Core等
      2、通过NuGet方便引入到任何项目 ( Install-Package restsharp )
      3、可以自动反序列化XML和JSON
      4、支持自定义的序列化与反序列化
      5、自动检测返回的内容类型
      6、支持HTTP的GET, POST, PUT, HEAD, OPTIONS, DELETE等操作
      7、可以上传多文件
      8、支持oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators等授权验证等
      9、支持异步操作
      10、极易上手并应用到任何项目中
    以上是RestSharp的主要特点,通用它你可以很容易地用程序来处理一系列的网络请求(GET, POST, PUT, HEAD, OPTIONS, DELETE),并得到返回结果。
    restsharp官网:http://restsharp.org/

    二、首先准备webapi项目

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Logging;
    
    namespace testweb.Controllers
    {
        [ApiController]
        [Route("[controller]/[action]")]
        public class TestController : ControllerBase
        {
            public async Task<IEnumerable<object>> TestGet()
            {
                return new object[] { new { Name = "小明", age = 20 }, new { Name = "小花", age = 18 } };
            }
    
            public async Task<IEnumerable<object>> TestPost()
            {
                return new object[] { new { Name = "post小明", age = 20 }, new { Name = "post小花", age = 18 } };
            }
    
            [HttpGet]
            [HttpPost]
            public async Task<string> TestUrlPara([FromQuery]string name, [FromQuery]int? age)
            {
                return $"hello {name},你{age}岁了!";
            }
    
    
            [HttpPost]
            public async Task<string> TestPostUrlFormUrlencoded([FromForm]string name, [FromForm]int? age)
            {
                return $"hello {name},你{age}岁了!";
            }
    
            [HttpPost]
            public async Task<string> TestPostUrlFormData([FromForm]string name, [FromForm]int? age)
            {
                return $"hello {name},你{age}岁了,你上传了{Request.Form.Files.Count}个文件!";
            }
    
            [HttpPost]
            public string TestBodyJson([FromBody]User user)
            {
                if (user == null) return "user is null.";
                return Newtonsoft.Json.JsonConvert.SerializeObject(user);
            }
    
            [HttpGet]
            public IActionResult TestDownLoad()
            {
                var filepath = @"C:\Users\AUAS\Pictures\百度下载图片\timg.jpg";
                FileStream fs = new FileStream(filepath, FileMode.Open);
                return File(fs, "application/octet-stream", "test.png");
            }
        }
        public class User
        {
            public string name { get; set; }
            public int? id { get; set; }
        }
    }
    

    三、开始测试restsharp发送各种类型http请求和下载文件

    3.1 首先nuget包引入restsharp

    在这里插入图片描述

    3.2 直接看测试代码

    using RestSharp;
    using System;
    using System.IO;
    
    namespace restsharpdemo
    {
        class Program
        {
            private static RestClient client = new RestClient("http://localhost:5000/");
            static void Main(string[] args)
            {
                //TestGet();
                //TestPost();
                //TestUrlPara();
                //TestPostUrlFormUrlencoded();
                //TestPostUrlFormData();
                //TestBodyJson();
                //TestDownLoad();
                Console.WriteLine("Hello World!");
                Console.ReadLine();
            }
    
            /// <summary>
            /// 测试下载文件
            /// </summary>
            private static void TestDownLoad()
            {
                string tempFile = Path.GetTempFileName();
                using (var writer = File.OpenWrite(tempFile))
                {
                    var req = new RestRequest("test/TestDownLoad", Method.GET);
                    req.ResponseWriter = responseStream =>
                    {
                        using (responseStream)
                        {
                            responseStream.CopyTo(writer);
                        }
                    };
                    var response = client.DownloadData(req);
                }
            }
    
            /// <summary>
            /// 测试传递application/json类型参数
            /// </summary>
            private static void TestBodyJson()
            {
                var req = new RestRequest("test/TestBodyJson", Method.POST);
                req.AddJsonBody(new { name = "小花", id = 23 });
                var res = client.Execute(req);
                if (res.IsSuccessful)
                {
                    Console.WriteLine($"成功:{res.Content}");
                }
                else
                {
                    if (res.StatusCode == 0)
                    {
                        Console.WriteLine($"失败:网络错误:{res.ErrorMessage}");
                    }
                    else
                    {
                        Console.WriteLine($"失败:{(int)res.StatusCode}-{res.StatusDescription}");
                    }
                }
            }
    
            /// <summary>
            /// 测试传递post multipart/form-data参数
            /// </summary>
            private static void TestPostUrlFormData()
            {
                var req = new RestRequest("test/TestPostUrlFormData", Method.POST);
                req.AlwaysMultipartFormData = true;
                req.AddParameter("name", "小明");
                req.AddParameter("age", "20");
                req.AddFile("file1", @"C:\Users\AUAS\Pictures\百度下载图片\timg.jpg");
                var res = client.Execute(req);
                if (res.IsSuccessful)
                {
                    Console.WriteLine($"成功:{res.Content}");
                }
                else
                {
                    if (res.StatusCode == 0)
                    {
                        Console.WriteLine($"失败:网络错误:{res.ErrorMessage}");
                    }
                    else
                    {
                        Console.WriteLine($"失败:{(int)res.StatusCode}-{res.StatusDescription}");
                    }
                }
            }
    
            /// <summary>
            /// 测试传递post application/x-www-form-urlencoded参数
            /// </summary>
            private static void TestPostUrlFormUrlencoded()
            {
                var req = new RestRequest("test/TestPostUrlFormUrlencoded", Method.POST);
                //将参数编码后加到url上
                req.AddHeader("Content-Type", "application/x-www-form-urlencoded");
                req.AddParameter("name", "小明");
                req.AddParameter("age", "20");
                var res = client.Execute(req);
                if (res.IsSuccessful)
                {
                    Console.WriteLine($"成功:{res.Content}");
                }
                else
                {
                    if (res.StatusCode == 0)
                    {
                        Console.WriteLine($"失败:网络错误:{res.ErrorMessage}");
                    }
                    else
                    {
                        Console.WriteLine($"失败:{(int)res.StatusCode}-{res.StatusDescription}");
                    }
                }
            }
    
            /// <summary>
            /// 测试传递url参数
            /// </summary>
            private static void TestUrlPara()
            {
                var req = new RestRequest("test/TestUrlPara", Method.GET);
                req = new RestRequest("test/TestUrlPara", Method.POST);
                //将参数编码后加到url上
                req.AddParameter("name", "小明");
                req.AddParameter("age", "18");
                var res = client.Get(req);
                if (res.IsSuccessful)
                {
                    Console.WriteLine($"成功:{res.Content}");
                }
                else
                {
                    if (res.StatusCode == 0)
                    {
                        Console.WriteLine($"失败:网络错误:{res.ErrorMessage}");
                    }
                    else
                    {
                        Console.WriteLine($"失败:{(int)res.StatusCode}-{res.StatusDescription}");
                    }
                }
            }
    
            /// <summary>
            /// 测试简单post
            /// </summary>
            private static void TestPost()
            {
                var req = new RestRequest("test/testpost", Method.POST);
                var res = client.Post(req);
                if (res.IsSuccessful)
                {
                    Console.WriteLine($"成功:{res.Content}");
                }
                else
                {
                    if (res.StatusCode == 0)
                    {
                        Console.WriteLine($"失败:网络错误:{res.ErrorMessage}");
                    }
                    else
                    {
                        Console.WriteLine($"失败:{(int)res.StatusCode}-{res.StatusDescription}");
                    }
    
                }
            }
    
            /// <summary>
            /// 测试简单get
            /// </summary>
            private static void TestGet()
            {
                var req = new RestRequest("test/testget", Method.GET);
                var res = client.Get(req);
                if (res.IsSuccessful)
                {
                    Console.WriteLine($"成功:{res.Content}");
                }
                else
                {
                    if (res.StatusCode == 0)
                    {
                        Console.WriteLine($"失败:网络错误:{res.ErrorMessage}");
                    }
                    else
                    {
                        Console.WriteLine($"失败:{(int)res.StatusCode}-{res.StatusDescription}");
                    }
    
                }
            }
        }
    }
    
    展开全文
  • 本周某项目中要实现一个文件下载功能,服务器端和电脑端都要开发。 服务器端:SpringBoot实现, 电脑端RestSharp实现,经过一番探索之后搞定,代码如下: SpringBoot: @GetMapping("/download-client") public ...

    本周某项目中要实现一个文件下载功能,服务器端和电脑端都要开发。

    服务器端:SpringBoot实现, 电脑端RestSharp实现,经过一番探索之后搞定,代码如下:

    SpringBoot:

    @GetMapping("/download-client")
    public ResponseEntity<Resource> downloadClient() throws IOException {
    	String filePath = "C:\\test.txt";
    	File file = new File(filePath);
    	InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
    
    	return ResponseEntity.ok()
    	            .contentLength(file.length())
    	            .contentType(MediaType.APPLICATION_OCTET_STREAM)
    	            .body(resource);
    }

    RestSharp:

    var client = new RestClient(url);
    var request = new RestRequest(Method.GET);
    request.AddHeader("Cache-Control", "no-cache");
    IRestResponse response = client.Execute(request);
    
    string destPath = "C:\test.txt"
    byte[] bytes = client.DownloadData(request);
    File.WriteAllBytes(destPath, bytes);

    不得不感叹IT行业生产力提高的速度。想起2012年刚入行的时候,下载文件也是挺麻烦的功能,没这么多现成的方案可用。随着编程语言与工具的繁荣,如今已经是小菜一碟了。

     

    展开全文
  • restsharp中文文档html版

    2018-11-28 09:16:17
    新鲜的restsharp中文文档html版,纯手工翻译,有需要请自行下载
  • restsharp中文文档markdown版,纯手工翻译,有需要请自行下载
  • restSharp访问带账号密码的接口

    在这里插入图片描述
    可以将账号密码封装成一个HttpBasicAuthenticator,然后将其当作参数放置到RestSharpClient中,即可成功解决。其在postman中的表现是
    在这里插入图片描述

    展开全文
  • RestSharp - Simple .NET REST Client RestSharp is a lightweight HTTP client library. It's a wrapper around HttpClient, not a full-fledged client on its own. What RestSharp adds to HttpClient: Default ...
  • 主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下
  • RestSharp具体以下特性;支持net4.0++,支持HTTP的GET, POST, PUT, HEAD, OPTIONS, DELETE等操作,支持oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators等授权验证等。截止当前目前是github最高...
  • RestSharp踩坑日记
  • c# RestSharp(http请求)

    万次阅读 2020-06-01 21:42:06
    介绍:RestSharp RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。RestSharp具体以下特性; 1、通过NuGet方便引入到任何项目(Install-Package restsharp)支持net4.0++ 2、可以自动反序列化...
  • RestSharp是一款非常有用的REST API客户端库。RestSharp可能是.NET中最受欢迎的HTTP客户端库,具有自动序列化和反...以字节或流的形式上传和下载文件。 参数 - 使用简单流畅的API添加查询、URL片段、正文、表单或头参数
  • RestSharp介绍

    千次阅读 2020-02-25 18:11:32
    RestSharp介绍 RestSharp是一个.NET平台下REST和HTTP API的开源客户端库,支持的平台包括 .NET 3.5/4、Mono、Mono for...RestSharp可以简化用户访问Restful的服务过程,在这里下载代码可以让用户更简单的使用RestSha...
  • 【WPF】【C#】测试下载文件(图片)

    千次阅读 2016-12-21 17:04:47
    联网下载一张PNG图片
  • 在客户端发送http请求,有HttpWebRequest方式,HttpClient,WebClient,RestSharp等等 ... 官方文档:https://restsharp.dev/getting-started/ github:https://github.com/restsharp/RestSharp 1 安装 相关dll可以...
  • C# WinForm Http上传下载(含进度条,下载上传速度) C# WinForm Http上传下载(含进度条,下载上传速度)
  • C#Winform中通过RestSharp调用Java的Restful接口的常规操作背景Restful API接口发布在C#中使用RestSharp调用Restful API使用RestSharp调用Get...C#中使用RestSharp实现文件上传在C#中使用RestSharp实现文件下载...
  • RestSharp的使用说明

    千次阅读 2020-03-20 10:53:23
    RestSharp介绍 不得不说,RestSharp是一款非常有用的REST API客户端库。RestSharp可能是.NET中最受欢迎...RestSharp在NuGet上的下载量超过3200万,评价每日下载量为10000。许多受欢迎的OSS项目(包括Roslyn和Swagge...
  • c #点击按钮下载excel文件 前端代码省去了,button属性οnclick=“excel” public void excel(object sender, EventArgs e) { //连接Oracle数据库查询数据 string connection2 = "Data Source=数据库名;user=...
  • http://2sharings.com/2015/csharp-net-restsharp-upload-file-to-remote-server-using-restsharp-demo 前给大家分享了一个C#/.NET的网络组件–RestSharp,具体请参考:推荐一个.NET(C#)的HTTP辅助类组件–...
  • 资料下载 稳定的 预览 得到帮助 阅读文档: 在Twitter上找到RestSharp: 贡献者 代码贡献者 这个项目的存在要感谢所有贡献者。 []。 财务贡献者 成为财务贡献者,并帮助我们维持我们的社区。 [] 个人 组织机构 ...
  • c#:HttpClient使用详解

    万次阅读 多人点赞 2021-08-18 16:04:55
    本部分参考:《WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择》 使用.net 平台原生提供的HttpWebRequest、WebClient和HttpClient。 使用开源的工具,如:RestSharp、Flurl。 在.net core平台...
  • 如何使用RestSharp使用ASP.NET Core Web API

    千次阅读 2020-05-19 14:13:54
    REST是“代表性状态转移”的首字母缩写,该体系结构样式在过去几年中非常流行。 RESTful API是根据REST的原理和准则构建的 ... RestSharp提供了一个开发人员友好的界面来使用RESTful服务,同时抽象化了处理HTTP请求...
  • using RestSharp; using Newtonsoft.Json; // 用于JSON序列化/反序列化 using Newtonsoft.Json.Linq; // 用于构建JSON对象 二、构建Client var client = new RestClient("需要请求的URI(不带参数的URL,如:...
  • C# RestSharp,Body提交

    千次阅读 2019-12-23 17:45:14
    这里需要在Nuget里进行安装,如果实在找不到可以在网上下载。需要注意的是里面需 要用到Newtonsoft,并且需要相同的版本。 如果实在找不到可以在confing文件里配置以下信息: <dependentAssembly> <...
  • HttpWebRequest ...例如,当您从响应很慢的API服务器下载文件时,您的应用程序的UI不会停止响应。 然而,强大的个性化操作带来了极大的复杂性。为了简单起见,GET需要至少五行代码; HttpWebRequest http = (H
  • 下载Newtonsoft.Json.Net35.dll,RestSharp.dll,QConnectSDK.dll

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 250
精华内容 100
关键字:

restsharp 下载文件