Excel VBA MSXML2.XMLHTTP60 PUT 请求在 "send" 操作上失败

Excel VBA MSXML2.XMLHTTP60 PUT request fail on "send" action

我正在 Excel 使用 VBA 创建与 Jira 的集成。

我能够使用 Jira 的 API.

安全登录(使用 POST)并检索 Jira 问题(使用 GET

现在我正在尝试更新问题,Jira API 上的 HTTP 动词是 GET。这应该不是问题,但事实是我连请求都做不到。

这是我当前的代码 - 它基于 POST 代码,但我不确定我是否遗漏了一些其他参数。

我省略了一些变量声明 - 这不是问题所在!

Public JiraService As New MSXML2.XMLHTTP60
JiraDataUrl = "https://atlassian.XXXXXXXX.com/jira/rest/api/2/issue/" & JiraId
body = "{""fields"" : {""customfield_13800"":""2011-10-03""}}"

Call JiraLogin(user, pass) 'This calls another Sub that log into Jira

JiraService.Open "PUT", JiraDataUrl, False
JiraService.setRequestHeader "Content-Type", "application/json"
JiraService.setRequestHeader "Accept", "application/json"
JiraService.setRequestHeader "X-Atlassian-Token:", "nocheck"
JiraService.send body

jsonText = JiraService.responseText
sStatus = JiraService.Status

当我 运行 脚本时,它被 excel 中断并显示以下消息:

我点击了DebugJiraService.send body部分被标记在代码上

如果我点击播放,我得到最后的错误 (This method cannot be called after the send method has been called),这对我来说没有任何意义:

如果我将 PUT 替换为 POST 它通常 运行s,但是 Jira API returns 出现 405 HTTP 错误 - 作为我的方法我试图使用需要 PUT。

知道我在这段代码中做错了什么吗?

我现在也在做同样的事情,我发现更新问题需要异步连接:

JiraService.Open "PUT", URL, True

那样的话

JiraService.send data

会成功,但是JiraService.statusreturns1223!但是,将更新问题字段...

有一个与 MSXML2.XMLHTTP60 相同的 "problem" 的讨论,看起来,1223 代码是一种 "success code": https://social.msdn.microsoft.com/Forums/en-US/c4911cd8-caba-4c25-b71c-fe2e1a7ef8be/update-sharepoint-list-metadata-using-rest-from-vba-using-msxml2xmlhttp60