【发布时间】:2020-09-14 19:46:48
【问题描述】:
我正在尝试通过 VBA 使用谷歌翻译 API(目前在 python 中工作),我发现 python 请求和 VBA 之间的唯一区别在于标题“accept-encoding”,python一个使用“应用程序/gzip”并且可以工作,但是即使我通过代码更改它,VBA 也会自动更改为“gzip,deflate”。代码如下:
Function Test_GoogleTranslate()
Dim strTranslate As String
Dim objRequest As Object
Dim strUrl As String
Dim blnAsync As Boolean
Dim strResponse As String
Dim strWeather As String
Dim payload As String
Set objRequest = CreateObject("MSXML2.XMLHTTP")
payload = "target=es&q=something&source=en"
strTranslate = "https://google-translate1.p.rapidapi.com/language/translate/v2"
strTranslate = strTranslate & "?" & payload
With objRequest
.Open "POST", strTranslate, True
.setRequestHeader "host", "google-translate1.p.rapidapi.com"
.setRequestHeader "x-forwarded-port", "443"
.setRequestHeader "x-forwarded-proto", "https"
.setRequestHeader "connection", "keep-alive"
.setRequestHeader "content-type", "application/x-www-form-urlencoded"
.setRequestHeader "accept-encoding", "application/gzip"
.setRequestHeader "x-rapidapi-host", "google-translate1.p.rapidapi.com"
.setRequestHeader "x-rapidapi-key", "856e8ba78dmsh443766612c5a923p14f661jsn72323e803261"
.Send
While objRequest.readyState <> 4
DoEvents
Wend
strResponse = .ResponseText
End With
MsgBox (strResponse)
End Function
当我在 python 中将接受编码更改为“gzip,deflate”时它崩溃了,所以我认为这可能是问题所在。 非常感谢任何帮助
【问题讨论】: