Microsoft.Data.OData.ODataContentTypeException:找不到与响应的内容类型匹配的受支持的MIME类型

时间:2012-12-15 03:47:28

标签: c# .net sharepoint rest odata

我遇到了异常

Microsoft.Data.OData.ODataContentTypeException: 
A supported MIME type could not be found that matches the content 
type of the response. None of the supported type(s) 
'application/atom+xml;type=entry, application/atom+xml, application/json;odata=verbose' 
matches the content type 'application/json'.
     at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType....

使用代码

var someJason = "{'__metadata':{'type':'SP.Data.TestObjectItem'}, " + jsonProperties + "}";
var content = new ByteArrayContent(Encoding.UTF8.GetBytes(someJason));
content.Headers.Add("X-RequestDigest", formDigest);

var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, queryUrl);
httpRequestMessage.Content = content;
httpRequestMessage.Headers.Add(HttpRequestHeader.Accept.ToString(),
                               "application/json;odata=verbose");
httpRequestMessage.Headers.Add(HttpRequestHeader.ContentType.ToString(),
                               "application/json;odata=verbose");
var result = await client.SendAsync(httpRequestMessage);

result变量总是返回400'错误请求'。我无法找到任何会强制此代码使用允许的内容类型的标头值。在某些情况下,当我在Accept标题中设置一些完全垃圾时,我得到406'Not Acceptable',它完全适合http://www.odata.org/documentation/operations文档。

根据这个odata文档,我试图将查询字符串设置为$format=JSON$format=atom,但我从未注意到这个参数有任何差异(好像被忽略了)。

所以我的问题是 - 我缺少什么?

代码用于调用SharePoint 2013 OData服务(_api / web / lists /)的WinRT应用程序,但我认为(并希望)问题不是那么具体。

0 个答案:

没有答案