{ 似乎使 VBA 崩溃。
Sub CurlyError()
Const URL = "https://jira.example.com/rest/api/latest/issue/issue-1111"
Const vbDoubleQuote As String = """"
Dim JiraService As New MSXML2.XMLHTTP60, ResponseTxt As String, sEncbase64Auth As String
Dim data As String
' credentials
sEncbase64Auth = EncodeBase64("USERNAME:PASSWORD")
NoErrorData = "{" & vbDoubleQuote & "fields" & vbDoubleQuote & ":" & vbDoubleQuote & "customfield_555" & vbDoubleQuote & ":" & vbDoubleQuote & "2025-12-11" & vbDoubleQuote & "}}}"
ErrorData = "{" & vbDoubleQuote & "fields" & vbDoubleQuote & ":{ " & vbDoubleQuote & "customfield_555" & vbDoubleQuote & ":" & vbDoubleQuote & "2025-12-11" & vbDoubleQuote & "}}}"
Debug.Print (data)
With JiraService
.Open "PUT", URL, False
.SetRequestHeader "Content-Type", "application/json"
.SetRequestHeader "Accept", "application/json"
.SetRequestHeader "X-Atlassian-Token", "nocheck"
.SetRequestHeader "Authorization", "Basic " & sEncbase64Auth
.Send (ErrorData)
Debug.Print .ResponseText
End With
End Sub
我总是可以打印数据线:
NoErrorData {"fields": "customfield_13000":"2025-12-11"}}}
ErrorData {"fields":{ "customfield_13000":"2025-12-11"}}}
有了 NoErrorData 行,是 Jira 响应了 java 错误
com.atlassian.jira.rest.v2.issue.IssueUpdateBean[\"fields\"])
ErrorData 行在信息发送到 Jira 之前使 VBA 崩溃。 下面是运行上述代码所需的函数。
Public Function EncodeBase64(text As String) As String
Dim arrData() As Byte
arrData = StrConv(text, vbFromUnicode)
Dim objXML As MSXML2.DOMDocument60
Dim objNode As MSXML2.IXMLDOMElement
Set objXML = New MSXML2.DOMDocument60
Set objNode = objXML.createElement("b64")
objNode.DataType = "bin.base64"
objNode.nodeTypedValue = arrData
EncodeBase64 = objNode.text
Set objNode = Nothing
Set objXML = Nothing
End Function
对于那些面临同样问题的人,我不知道为什么会发生错误,但是可以在函数开始时用
On Error Resume Next
忽略它。
Sub CurlyError()
On Error Resume Next
Const URL = "https://jira.example.com/rest/api/latest/issue/issue-1111"
Const vbDoubleQuote As String = """"
Dim JiraService As New MSXML2.XMLHTTP60, ResponseTxt As String, sEncbase64Auth As String
Dim data As String
' credentials
sEncbase64Auth = EncodeBase64("USERNAME:PASSWORD")
data = "{" & vbDoubleQuote & "fields" & vbDoubleQuote & ":{ " & vbDoubleQuote & "customfield_555" & vbDoubleQuote & ":" & vbDoubleQuote & "2025-12-11" & vbDoubleQuote & "}}}"
Debug.Print (data)
With JiraService
.Open "PUT", URL, False
.SetRequestHeader "Content-Type", "application/json"
.SetRequestHeader "Accept", "application/json"
.SetRequestHeader "X-Atlassian-Token", "nocheck"
.SetRequestHeader "Authorization", "Basic " & sEncbase64Auth
.Send (data)
Debug.Print .ResponseText
End With End Sub