OneNote API“;格式不正确的多部分消息“;
我正在编写一个库以与新的OneNote API交互 我可以用LiveConnect跳OAuth舞,没有问题,我正在发布一个简单的多部分示例,以证明在我开始添加更多附件之前一切正常 无论我尝试什么,我总是得到:OneNote API“;格式不正确的多部分消息“;,onenote,Onenote,我正在编写一个库以与新的OneNote API交互 我可以用LiveConnect跳OAuth舞,没有问题,我正在发布一个简单的多部分示例,以证明在我开始添加更多附件之前一切正常 无论我尝试什么,我总是得到: Content-Length: 48 { "Message": "Malformed multipart message" } 问题是,这并不是我能说的那么远 我已经逐个字符地检查了请求主体的标题,看起来很好。我还仔细检查了中的所有调试建议,看不出有什么问题 我已经对HTML U
Content-Length: 48
{
"Message": "Malformed multipart message"
}
问题是,这并不是我能说的那么远
我已经逐个字符地检查了请求主体的标题,看起来很好。我还仔细检查了中的所有调试建议,看不出有什么问题
- 我已经对HTML UTF-8进行了编码
- 我使用一个库来构建主体,并通过一个可视化的解析(见下文)
- 我要寄到
- 标题看起来不错,边界、内容类型等也不错
POST /api/v1.0/pages HTTP/1.1
Host: www.onenote.com
User-Agent: {myLibrary}
Authorization: Bearer {mytoken}
Content-Length: 416
Content-Type: multipart/form-data; boundary=534a5a9ca709c
--534a5a9ca709c
Content-Type: text/html
Content-Disposition: form-data; name="Presentation"
<!DOCTYPE html>
<html>
<head>
<title>onenote test page</title>
<meta name="created" content="2014-04-13T10:36:28+01:00"/>
</head>
<body>
<p>Hello OneNote World</p>
</body>
</html>
--534a5a9ca709c--
POST/api/v1.0/pages HTTP/1.1
主持人:www.onenote.com
用户代理:{myLibrary}
授权:持票人{mytoken}
内容长度:416
内容类型:多部分/表单数据;边界=534a5a9ca709c
--534a5a9ca709c
内容类型:text/html
内容配置:表单数据;name=“演示文稿”
onenote测试页
你好OneNote世界
--534a5a9ca709c--
我通过。如果您将部件名“534a5a9ca709c”替换为其他名称(我只使用了“NewPart”),请求将成功通过
您应该能够使用“534a5a9ca709c”作为部件名称,因此这似乎是我们这边的一个bug。我们将调查它发生的原因,但在此期间,您可以使用变通方法
更新:这与零件名称无关。正如Darren指出的,您需要确保在结束部分名称之后有一个新行(例如“--534a5a9ca709c-->”)
如果在中尝试此操作,请确保更新消息正文和标头中的partname,因为它们需要匹配
-詹姆斯()感谢@JamesLau MSFT让我走上了正确的轨道 实际上边界是好的。如果在最终边界后有换行符或一些文本,使用Apigee我可以让它发布上面指定的确切内容 您会注意到APIgee中默认的OneNote示例页面在结束边界后有一个点 这项工作:
--534a5a9ca709c
Content-Type: text/html
Content-Disposition: form-data; name="Presentation"
<!DOCTYPE html>
<html>
<head>
<title>onenote test page</title>
<meta name="created" content="2014-04-13T10:36:28+01:00"/>
</head>
<body>
<p>Hello OneNote World</p>
</body>
</html>
--534a5a9ca709c--
Blah Blah
在第一个封装边界和
在最终边界之后。这些区域通常应保留
空白,并且实现应该忽略之前出现的任何内容
第一个边界或最后一个边界之后
更新:
在最终边界之后换行的要求似乎已被删除。您是否有任何更新,说明为什么在最终分隔符之后需要内容?对我来说,这似乎是不规范的行为。
--gc0p4Jq0M2Yt08jU534c0p--