Vba 垃圾在「;获得;RallyDev API的回应

Vba 垃圾在「;获得;RallyDev API的回应,vba,excel,rally,Vba,Excel,Rally,我在Excel中有一个函数: Function getState(Defects As Object) As String Dim str As String Dim res As String Dim was As Boolean Dim sURL As String Dim oRequest As Object Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1") was = False For Each defect In

我在Excel中有一个函数:

Function getState(Defects As Object) As String

Dim str As String
Dim res As String
Dim was As Boolean
Dim sURL As String
Dim oRequest As Object
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")

was = False

For Each defect In Defects
    If was = False Then
        str = "(FormattedID = """ & defect & """)"
        res = str
        was = True
    Else
        res = res & " OR " & str
    End If
Next defect

sURL = "https://rally1.rallydev.com/slm/webservice/v2.0/defect?query=(" & res & ")&fetch=FormattedID,State"

oRequest.Open "GET", sURL, True
oRequest.setRequestHeader "Content-Type", "application/json;charset=UTF-8"
oRequest.Send
oRequest.WaitForResponse
' Set Defects = oRequest.ResponseText
Debug.Print (oRequest.ResponseText)

End Function
不幸的是,我得到的响应是垃圾而不是json,比如: ? i?ANA0  E?=A(utU “RoP”的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者们的研究者的研究者们的研究者的研究者Az?7bw?/#eWp ^ u?ZU?u?3?q?a)c?y7µe?e

请你看一下,并提供一个解决方案,如何修复它


提前感谢!

响应已压缩。请尝试为Accept Encoding:identity设置请求标头,或解压缩响应。

Larry的回答是正确的

另外,如果您需要将数据从Rally拉入Excel,最好的选择是Rally Excel附加模块:

由于您提到VBA,您可能正在努力在Excel中构建一些自动化,而Excel加载项不支持这些自动化。VBA有一个alpha级别的Rally Rest工具包。它为您处理身份验证和Rest序列化/反序列化,因此可以减轻您的一些编码工作

它是非官方的,不受Rally支持,但可能值得尝试。由于它不受支持,因此如果遇到问题,Rally无法帮助您解决。您必须根据VBA工具包重构自己的代码,以获取所需的数据:


这不是响应的问题,但看起来每个
循环的
都在重复第一个缺陷。您可能需要在
If…Else
块之前设置
str
的值