C#使用RestSharp HTTP组件发送post文件请求
NuGet安装 RestSharp
推荐使用 105.2.3.0版本
注意bug:var response=client.Execute<Student>(request); 该方法序列化成实体有问题,可以改成序列化成dynamic(动态类)
//Get { var client = new RestClient("https://localhost:44370/api/First"); client.Authenticator = new RestSharp.Authenticators.HttpBasicAuthenticator("admin", "admin"); var request = new RestRequest(Method.GET); request.AddHeader("Content-Type", "application/json"); request.Timeout = 10000; request.AddHeader("Cache-Control", "no-cache"); request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method request.AddUrlSegment("id", "123"); // replaces matching token in request.Resource // add parameters for all properties on an object //request.AddJsonObject(@object); //直接传输一个实体 //request.AddJsonBody("实体"); //request.AddObject(object, "PersonId", "Name", ...); request.AddHeader("header", "value"); //add files to upload (works with compatible verbs) //request.AddFile("file", path); var response = client.Execute(request); var content = response.Content; } //POST(单个参数与) { var client = new RestClient("https://localhost:44370/api/Unity"); var request = new RestRequest(Method.POST); request.AddParameter("", "value"); var response = client.Execute(request); var content = response.Content; } //POST(实体参数) { var client = new RestClient("https://localhost:44370/api/Unity/PostTest"); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); Student stu = new Student { AGE = 26, ID = 1, NAME = "czk", PWD = 123456 }; request.AddJsonBody(stu); //var response = client.Execute<Student>(request);//报错、 var response = client.Execute<dynamic>(request); var retStu = Newtonsoft.Json.JsonConvert.DeserializeObject<Student>(response.Data); } //上传文件 { var client = new RestClient("https://localhost:44370/api/File/UploadFiles"); var request = new RestRequest(Method.POST); var imagePath = AppDomain.CurrentDomain.BaseDirectory + @"File\image.jpg"; request.AddFile("image", imagePath); var response = client.Execute(request); var content = response.Content; } //下载文件 { var client = new RestClient("https://localhost:44370/api/File/DownloadFile"); var request = new RestRequest(Method.GET); string tempFile = Path.GetTempFileName(); var writer = File.OpenWrite(tempFile); request.ResponseWriter = responseStream => { using (responseStream) { responseStream.CopyTo(writer); } }; byte[] bytes = client.DownloadData(request); }
本文作者:曲琦
本文链接:https://www.cnblogs.com/123525-m/p/16944775.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。