gpt4 book ai didi

windows-store-apps - 通过新的 REST API 将文档发布到 OneNote

转载 作者:行者123 更新时间:2023-12-02 21:27:49 24 4
gpt4 key购买 nike

由于某种原因,我通过新的 REST API 上传到 OneNote 的任何文档在从 OneNote 中查看时都会损坏。其他一切都很好,但文件(例如 Word 文档)不可单击,如果您尝试打开,则会显示为已损坏。

这与字节数组或其内存中出现问题时可能发生的情况类似,但情况似乎并非如此。我基本上使用相同的过程将文件字节上传到 SharePoint、OneDrive 等。仅在 OneNote 中,该文件似乎已损坏。

这是 C# 的简化版本

HttpRequestMessage createMessage = null;
HttpResponseMessage response = null;

using (var streamContent = new ByteArrayContent(fileBytes))
{
streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
streamContent.Headers.ContentDisposition.Name = fileName;

createMessage = new HttpRequestMessage(HttpMethod.Post, authorizationUrl)
{
Content = new MultipartFormDataContent
{
{
new StringContent(simpleHtml,
System.Text.Encoding.UTF8, "text/html"), "Presentation"
},

{streamContent}
}
};

response = await client.SendAsync(createMessage);

var stream = await response.Content.ReadAsStreamAsync();

successful = response.IsSuccessStatusCode;
}

是否有人有任何想法或工作代码可以通过 Windows 应用商店应用程序通过 OneNote API 上传实际的二进制文档?

最佳答案

WinStore code sample包含如何上传附件的工作示例(方法:CreatePageWithAttachedFile)。我能想到的上述代码片段和代码示例之间的细微差别是,代码示例上传 pdf 文件(而不是文档),并且示例使用 StreamContent(而上面的代码片段使用 ByteArrayContent)。我下载了代码示例并在本地对其进行了修改以使用文档文件和 ByteArrayContent。我能够上传附件并成功查看。使用以下代码从给定流中获取字节数组:

   using (BinaryReader br = new BinaryReader(stream))
{
byte[] b = br.ReadBytes(Convert.ToInt32(s.Length));
}

其余代码看起来与上面的代码片段非常相似,总体上对我来说成功了。

在解决问题时还需要考虑以下几点:

  • 首先验证附件文件本身没有损坏。例如可以在没有 OneNote API 的情况下打开它吗?
  • 验证 API 返回 201 Http 状态代码,并且生成的页面包含附件图标并允许下载/查看附件。

关于windows-store-apps - 通过新的 REST API 将文档发布到 OneNote,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23094058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com