我正在尝试使用此脚本根据他们的API将艺术家和标题数据发送到TuneIn Radio,在此我迷路了:
Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://air.radiotime.com/Playing.ashx?partnerId=<ID>&partnerKey=<key>&id=<station>&title=blank&artist=blank", False
o.send
我遇到的问题是使用预先创建的变量
Function HandleLine(sLine)
divisao = (sline)
divisao = split(divisao,"-")
SongInfo.Value("artist") = (Trim(divisao(0)))
SongInfo.Value("title") = (Trim(divisao(1)))
SongInfo.Value("songtype") = "S"
SongInfo.DoSongChange
End Function
我希望能够获取这些变量并在上面的URL发送字符串中使用它们发送到API ...有谁知道如何使这成为可能?
如果没有,该文件最初是作为远程PC上的文本文件读取的,如果可以创建变量,我也可以去那里。
答案 0 :(得分:1)
我的问题仍然不是很清楚,但假设您要使用title
对象中的值填充网址参数artist
和SongInfo
执行以下操作:
url = "http://air.radiotime.com/Playing.ashx" & _
"?partnerId=<ID>&partnerKey=<key>&id=<station>" & _
"&title=" & Replace(SongInfo.Value("title"), " ", "+") & _
"&artist=" & Replace(SongInfo.Value("artist"), " ", "+")
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", url, False
o.send
根据artist
和title
的值所包含的字符,您可能需要先对其进行编码:
Function Encode(ByVal str)
Set re = New RegExp
re.Pattern = "[^a-zA-Z0-9_.~-]"
enc = ""
For i = 1 To Len(str)
c = Mid(str, i, 1)
If re.Test(c) Then c = "%" & Right("0" & Hex(Asc(c)), 2)
enc = enc & c
Next
Encode = enc
End Function