3

次の例外が発生しています

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 'Bad Request' を返します。このコードに許可されたコンテンツ タイプの使用を強制するヘッダー値を見つけることができませんでした。場合によっては、Accept ヘッダーに総ゴミを設定すると、 http://www.odata.org/documentation/operationsドキュメントに完全に適合する 406 'Not Acceptable' が表示されます。

この odata ドキュメントによると、クエリ文字列も と のいずれかに設定しようとして$format=JSON$format=atomましたが、このパラメーターの違いに気づいたことはありません (無視されているようです)。

だから私の質問は - 私が欠けているものは何ですか?

コードは、SharePoint 2013 OData サービス (_api/web/lists/) を呼び出す WinRT アプリケーションで使用されますが、その問題はそれほど具体的ではないと思います (希望します)。

4

0 に答える 0