Сбой запроса PUT для Excel VBA MSXML2.XMLHTTP60 при действии «отправить» - PullRequest
1 голос
/ 10 июля 2019

Я создаю интеграцию с Jira в Excel, используя VBA.

Я могу безопасно входить в систему (используя POST) и получать проблемы Jira (используя GET), используя API Jira.

Теперь я пытаюсь обновить проблемы, и HTTP-глагол Jira's API - 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 со следующими сообщениями:

First alert

Я нажимаю Debug, и часть JiraService.send body отмечена на коде

Marked area on the code

Если я нажимаю на игру, я получаю последнюю ошибку (This method cannot be called after the send method has been called), которая не имеет никакого смысла для меня:

This methodcannot

Если я заменил PUT на POST, он работает нормально, но Jira API возвращает ошибку HTTP 405 - поскольку метод, который я пытаюсь использовать, требует PUT.

Есть идеи, что я делаю не так в этом коде?

1 Ответ

1 голос
/ 11 июля 2019

Я делаю то же самое прямо сейчас, и я выяснил, что обновление проблемы требует асинхронного соединения:

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

...