【发布时间】:2019-11-20 06:27:22
【问题描述】:
我正在使用 VBA 在 Excel 上创建与 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 中断并显示以下消息:
我点击Debug,代码上标出了JiraService.send body部分
如果我点击播放,我会得到最终错误 (This method cannot be called after the send method has been called),这对我来说没有任何意义:
如果我将 PUT 替换为 POST,它会正常运行,但 Jira API 返回 405 HTTP 错误 - 因为我尝试使用的方法需要 PUT。
知道我在这段代码中做错了什么吗?
【问题讨论】:
标签: excel vba jira-rest-api