我使用的是文档数据库,有些文档可能会超出大小限制(2MB)。我试图将大块存储为附件,这是我的代码片段:
var stringifiedItems = JsonConvert.SerializeObject(doc.Items);
var attachmentStream = new MemoryStream(Encoding.UTF8.GetBytes(stringifiedItems));
doc.Attachment = await _client.CreateAttachmentAsync(GetDocumentLink(docId), attachmentStream, new MediaOptions()
{
ContentType = "application/json",
Slug = "Items.json"
});
但CreateAttachmentAsync()调用总是抛出一般错误:
"请求有效负载无效。确保提供有效的请求有效负载。"
有人可以了解我的代码中缺少的内容,或提供有关如何排查问题的建议吗?
答案 0 :(得分:1)
当我们设置ContentType
到MediaOptions
时,它会设置Content-Type
HTTP请求标头。但是,带有CreateAttachmentAsync
参数的方法MemoryStream
将发送没有正文数据的请求,因此这是问题有效负载无效的路由原因。
要解决此问题,我们可以使用ContentType
上传流对象,而不是将application/json
设置为application/octet-stream
。