excel - Excel VBA MSXML2.XMLHTTP60 PUT 请求在“发送”操作时失败
问题描述
我正在使用 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。
知道我在这段代码中做错了什么吗?
解决方案
我现在正在做同样的事情,并且我发现更新问题需要异步连接:
JiraService.Open "PUT", URL, True
在这种情况下
JiraService.send data
将成功,但JiraService.status
返回 1223!但是,将更新问题字段...
与 MSXML2.XMLHTTP60 存在相同“问题”的讨论,似乎 1223 代码是一种“成功代码”: https ://social.msdn.microsoft.com/Forums/en-US/c4911cd8-caba -4c25-b71c-fe2e1a7ef8be/update-sharepoint-list-metadata-using-rest-from-vba-using-msxml2xmlhttp60
推荐阅读
- regex - Typescript string.split with regex with char 后跟空格和空格
- angular - 没有孩子的primeNg树上的切换图标| 角 8
- xml - 如何在 XSLT 中以特定条件遍历前 10 个元素?
- android - getContext() 无法识别
- csv - 将多个 CSV 文件合并到 gdrive 上的单个文件中
- linker - 允许使用 dlopen() 加载的插件动态链接到它们自己目录中的共享对象
- c++ - 在运行时将更改的环境变量应用于 QApplication
- c++ - 使用 lambda 比较初始化优先级队列的方法
- javascript - MS SQL 在 NodeJS 中不返回数据
- java - 如何拆分一串 8 个数字并分别访问它们?