asp.net-mvc – 为什么POST会在MVC 4中引发异常?
我想尝试这样的POST:
HttpClient hc = new HttpClient(); byte[] bytes = ReadFile(@"my_path"); var postData = new List<KeyValuePair<string,string>>(); postData.Add(new KeyValuePair<string,string>("FileName","001.jpeg")); postData.Add(new KeyValuePair<string,string>("ConvertToExtension",".pdf")); postData.Add(new KeyValuePair<string,string>("Content",Convert.ToBase64String(bytes))); HttpContent content = new FormUrlEncodedContent(postData); hc.PostAsync("url",content).ContinueWith((postTask) => { postTask.Result.EnsureSuccessStatusCode(); }); 但我收到这个例外:
抱怨这一行:HttpContent content = new FormUrlEncodedContent(postData);.对于小文件它可以工作,但我不明白为什么对于较大的文件它不? 当我发布POST时,内容可能会更大……那么为什么它会抱怨URI? 解决方法
您应该使用MultipartFormDataContent(
http://msdn.microsoft.com/en-us/library/system.net.http.multipartformdatacontent%28v=vs.110%29)而不是FormUrlEncodedContent,它将您的数据发送为“application / x-www-form-urlencoded”.
因此,即使您使用POST动词,它仍然会发送到包含您的数据的非常长的URL,因此错误.
见:http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 有关示例,请查看此答案:ASP.NET WebApi: how to perform a multipart post with file upload using WebApi HttpClient (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何调用我的WCF服务构造函数?
- asp.net – Favicon没有显示
- 可以在asp.net c#中将web.config键值对用作编译时常量吗?
- 在ASP.Net MVC应用程序中放置初始化代码的位置?
- ASP.NET 使用Swagger开发Web API接口项目
- asp.net-core – 具有Attributes的基于IP的授权策略
- asp.net-mvc – 将DropDownList绑定到MVC视图中
- 一个ASP.NET Web应用程序中的经典.ASP和.NET .aspx网页
- asp.net – UserPrincipal.FindByIdentity在IIS服务器上返回
- asp.net-core – 在开发中的ASP.NET核心项目上启用/禁用SSL
- 从数据到代码——基于T4的代码生成方式
- asp.net-mvc-3 – ASP.NET MVC DropDownListFor从
- asp.net-mvc-3 – Razor in-line if语句不工作?
- asp.net核心 – MVC6是否支持预编译视图?
- asp.net – 以URL结尾的问题
- asp.net-mvc – ASP.Net 5中缺少FormCollections
- asp.net-web-api – 为什么Microsoft.Owin.Host.
- asp.net-mvc-3 – ASP.NET MVC3 URL参数解析为nu
- asp.net – 使用ARR的IIS反向代理与目录级别有问
- asp.net-web-api – 带协议缓冲区的ASP.NET WebA