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 中断并显示以下消息:
我点击了Debug
,JiraService.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.status
returns1223!但是,将更新问题字段...
有一个与 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
我正在 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 中断并显示以下消息:
我点击了Debug
,JiraService.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.status
returns1223!但是,将更新问题字段...
有一个与 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