为什么Request Header上的ContentType属性为空?

时间:2013-03-05 22:29:31

标签: c# http-headers asp.net-web-api httprequest

我正在使用Fiddler来编写对我的Web API服务的调用。电话正在通过,我正在控制器中调试它。但是,Request.Content.Headers.ContentTypenull。但是,当我检查对象时,我可以看到Content-Type: application/xml;,如下所示:

?Request.Content.Headers
{Content-Length: 40039
Content-Type: application/xml;
}
    base {System.Net.Http.Headers.HttpHeaders}: {Content-Length: 40039
Content-Type: application/xml;
}
    Allow: {}
    ContentDisposition: null
    ContentEncoding: {}
    ContentLanguage: {}
    ContentLength: 40039
    ContentLocation: null
    ContentMD5: null
    ContentRange: null
    ContentType: null
    Expires: null
    LastModified: null

我需要做些什么才能检查ContentType值并填充它?

编辑:以下是我的Post方法的方法签名:

public HttpResponseMessage Post(MyMethodDTO message)

MyMethodDTO只是一个简单的DTO类,其getter / setter是所有字符串。

1 个答案:

答案 0 :(得分:3)

内容类型中的尾随分号无效。尝试发送:

Content-Type: application/xml

代替。

HTTP规范将媒体类型定义为:

media-type     = type "/" subtype *( ";" parameter )

所以在媒体类型参数

之前应该只有一个分号