c# – 发布文件以及web api的一些参数
发布时间:2020-12-15 21:00:23 所属栏目:百科 来源:网络整理
导读:我有Web api控制器Uploads Controller,它有PostUpload方法将数据存储到数据库. 现在我试图将文件和一些参数发布到那个web api但是所有的尝试都失败了,就像传递数组列表,json对象一样,我们不能将文件和参数发布到web api? var request = new RestRequest("Up
我有Web api控制器Uploads Controller,它有PostUpload方法将数据存储到数据库.
现在我试图将文件和一些参数发布到那个web api但是所有的尝试都失败了,就像传递数组列表,json对象一样,我们不能将文件和参数发布到web api? var request = new RestRequest("Uploads",Method.POST); request.RequestFormat = DataFormat.Json; request.AddHeader("Content-Type","application/json"); request.AddFile("filename",Server.MapPath("/Images/137549014628194.R6MyHlYrIfIo3BWPIytG_height640.png"),"image/png"); request.AddFile("filename","image/png"); request.AddParameter("participantsId",2); request.AddParameter("taskId",77); request.AddParameter("EnteredAnswerOptionId",235); IRestResponse response = createClient().Execute(request); web api方法: [HttpPost] public string PostUpload(int? participantsId,int? taskId,int? EnteredAnswerOptionId) { var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null; if (file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(HttpContext.Current.Server.MapPath("~/uploads"),fileName); file.SaveAs(path); } return "/uploads/" + file.FileName; } 但它给出了如下错误:
我需要将文件和参数发布到我的api. 使用restsharp发送数据 解决方法
我能够使用以下控制台应用程序成功发布(基于
this post):
static void Main(string[] args) { RunAsync().Wait(); } static async Task RunAsync() { using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:3963/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string filepath = "C:/Users/Popper/Desktop/Stackoverflow/MatchPositions.PNG"; string filename = "MatchPositions.PNG"; MultipartFormDataContent content = new MultipartFormDataContent(); ByteArrayContent fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(filepath)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = filename }; content.Add(fileContent); HttpResponseMessage response = await client.PostAsync("api/Upload?participantsId=2&taskId=77&EnteredAnswerOptionId=235",content); string returnString = await response.Content.ReadAsAsync<string>(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |