asp.net-web-api – WebApi 2.1 PUT抛出错误415
发布时间:2020-12-31 00:53:59 所属栏目:asp.Net 来源:互联网
导读:我正在尝试使用WebApi PUT方法更新数据.我的代码工作正常,但突然之间我开始得到这个错误. Message:The request contains an entity body but no Content-Type header. The inferred media type application/octet-stream is not supported for this
|
我正在尝试使用WebApi PUT方法更新数据.我的代码工作正常,但突然之间我开始得到这个错误. "Message":"The request contains an entity body but no Content-Type header. The inferred media type 'application/octet-stream' is not supported for this resource.","ExceptionMessage":"No MediaTypeFormatter is available to read an object of type 'xEmployee' from content with media type 'application/octet-stream'.","ExceptionType":"System.Net.Http.UnsupportedMediaTypeException". 这是标题: HTTP/1.1 415 Unsupported Media Type Cache-Control: no-cache Pragma: no-cache Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/7.5 Set-Cookie: Role=D65520F37D105E39C1A92C15CD482E378F32A769592AC7D8305285A5B9B90362F7F2F13F14E6DC220E44D26940B06B52E7460EF13184F245805AF9523D1072464F4BD06AFB4F8AEB8B7D8BF607A8922C6041A3A4C636BF3B26388E606A94FE43; expires=Tue,07-Oct-2014 09:49:56 GMT; path=/ X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue,07 Oct 2014 09:19:56 GMT Content-Length: 809 请求标题: PUT /api/xemployees/2110481232 HTTP/1.1
Host: guideonline.ilvestour.office
Connection: keep-alive
Content-Length: 229
Accept: application/json,text/javascript,*/*; q=0.01
Origin: http://guideonline.ilvestour.office
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/37.0.2062.124 Safari/537.36
Content-Type: application/json; charset=UTF-8"
Referer: http://guideonline.ilvestour.office/account
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: .ASPXAUTH=215C424A0A023F5B42775B7A73B08FEC8CB36E7200FBA430EADF2F300A84500571F8B5EE980C3EF2913FE160978973CDBC50BDD216E16FC342EF0B566D0944ECFD901DF471DEF9F6E5D272B52F2450CC0A1FB96BCC6B3B6E7A7C07343D4DFBD66; Role=DE678EE89D7089B8CD74B202E00C53CA9AE9E4C40B506C5C4EEF56E7962F38ED86F6BFD34E5FD3A6DD6ECCCF61AF768CAB0C1D7C5F15A8638F9454B24DF3208F021EB638235420574C6420CA5A19F0B6BD07BAC303FF79612D6C1AF246563A7
Request Payloadview source
{"Kod":2110481232,"Сотрудник": "Lena","Telephon": "088-6734227","Password":"rimosa57","email":"samoylova-elena@mail.ru","CrWho":"OMEGA.Administrator","CrWhen":"2014-10-07T09:20:05.735Z"}
控制器代码中没有什么特别之处: [Authorize(Roles = "Admin,User")]
public async Task<IHttpActionResult> PutxEmployee(int id,xEmployee xEmployee)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != xEmployee.Kod)
{
return BadRequest();
}
try
{
var user = db.xEmployee.Find(id);
user.Сотрудник = xEmployee.Сотрудник;
user.Telephon = xEmployee.Telephon;
user.Password = xEmployee.Password;
user.email = xEmployee.email;
await db.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!xEmployeeExists(id))
{
return NotFound();
}
else
{
throw;
}
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
var path = "C:/error.txt";
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Entity of type "{0}" in state "{1}" has the following validation errors:",eve.Entry.Entity.GetType().Name,eve.Entry.State);
}
using (StreamWriter sw1 = File.CreateText("C:/error1.txt"))
foreach (var ve in eve.ValidationErrors)
{
sw1.WriteLine("- Property: "{0}",Error: "{1}"",ve.PropertyName,ve.ErrorMessage);
}
}
throw;
}
return StatusCode(HttpStatusCode.NoContent);
}
与WebApiConfig相同: public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional }
);
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.Culture = new CultureInfo("ru-RU");
config.Formatters.Remove(config.Formatters.XmlFormatter);
}
解决方法请求的Content-Type标头中似乎有一个打字错误(最后一个)Content-Type: application/json; charset=UTF-8" 当此标题丢失或格式错误时,服务器将默认自动使用应用程序/八位字节流,如this post所述. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – MVC3非顺序索引和DefaultModelBinder
- MVC SessionStateAttribute不作为全局属性
- asp.net – Jquery Ajax,不在Internet Explorer中工作
- ASP.NET – 可以从服务器代码触发回发吗?
- asp.net – 使用WebMethods和session时的最佳实践
- 如何将数组从Asp.net服务器端传递到客户端的Javascript函数
- asp.net – Azure可以运行WPF吗?
- 你如何在ASP.NET中配置httpOnlyCookies?
- Asp.net实现MVC处理文件的上传下载功能实例教程
- asp.net-mvc – 如何检查是否为浏览器启用了cookie
推荐文章
站长推荐
- 如何以编程方式将ListItems添加到ASP.NET中的Dro
- ASP.NET代码隐藏中的当前工作目录 – 我们可以依
- VS 2015.为ASP.NET 5 web项目设置正确的目标框架
- asp.net-mvc – MVC错误 – 传入字典的模型项目的
- asp.net-mvc-4 – MVC 4 DropDownListFor错误 –
- asp.net-mvc – 如何成功配置Common.Logging?
- 端到ASP.NET MVC的推荐方法
- asp.net-mvc – 使用Razor视图引擎 – 如何格式化
- asp.net-mvc – 使用ASP.Net MVC中的模型绑定器更
- asp.net-mvc – ACS安装,但MVC 4.0应用程序仍然重
热点阅读
