Onenote API(REST) - PATCH追加 - “已经提供命令时必须包含'命令'”错误(?!)

时间:2015-06-24 04:35:33

标签: api rest patch onenote

注意:我很确定PATCH查询没有任何问题,我之前使用'Content-type':'application / json'和构造的json文件:

[
  {
  'target':'|TARGET_ID|',
  'action':'append',
  'content':'|HTML|'
  }  
]

出于此目的,提供的标头(认证承载是正确的并将被省略)

'Content-type':'multipart/form-data; Boundary=sectionboundary' 

(注意:Boundary = sectionboundary在同一行)

尝试将以下正文作为PATCH传递给
    https://www.onenote.com/api/v1.0/pages/|GUID|/content  返回一个      “code”:“20124”,“message”:“多部分PATCH请求必须包含'命令'部分,其中包含PATCH操作JSON结构。” :

--sectionboundary
Content-Disposition: form-data; name="Commands"
Content-Type: application/json
[
  {
  'target':'|TARGET_ID|',
  'action':'append',
  'content':'|HTML|'
  }  
]

--sectionboundary
Content-Disposition: form-data; name="image-part-name"
Content-Type: image/png

|BINARY_IMAGE_DATA|

--sectionboundary--

如您所见,已经有一个命令部分。使用smallcaps'命令'没有用,根据OneNote开发人员中心文档,正确的语法应该是“命令”。

PS:| TARGET_ID | | HTML | | GUID |和| BINARY_DATA |在运行时被替换为正确的内容。由于隐私限制,您可能使用与我不同的架构,以及多长时间| BINARY_IMAGE_DATA |实际上,除非需要解决问题,否则我不会显示实际输入。

想知道我是否遗漏了任何东西 - 提前谢谢。

PPS:是的,我意识到我在| HTML |中省略了img标签某处。它不应该与代码20124有任何关系,如果我弄错了,应该完全返回另一件事。

1 个答案:

答案 0 :(得分:0)

根据您对共享的请求信息的调查,我可以确认作为您提供的关联的一部分引用的PATCH请求与您发布的标头信息不匹配。 相关的PATCH请求显示为多部分请求,只有一个部分具有媒体类型" TEXT / HTML"而不是" Application / JSON"。您能否查看并确认您的请求内容? 让我们继续在电子邮件中讨论这个问题。如果您仍然遇到调用API的问题,请发送电子邮件至machandw@microsoft.com

此致 的Manoj