Excel VB 使用 Bit.ly 缩短 URL 不会传递长 URL 中的"%3d"



我正在构建一个VB宏,可以批量缩短URL(我们说的是数千个)。我的宏工作得很好,直到我遇到一个带有"%3d"的长 URL,它转换为等号 (=)。

以下是长 URL 的示例:http://domain.com/se/?st=YmUQaIg9PCoCs3vex5XHE1NnqfurVpWsXMXix0QkyO4%3d&p=A43S8C

我的宏将整个 URL 发送到 Bit.ly,但 Bit.ly 的响应文本显示它缩短了以下内容:http://domain.com/se/?st=YmUQaIg9PCoCs3vex5XHE1NnqfurVpWsXMXix0QkyO4=

事实上,当我转到缩短的链接时,我并没有被定向到完整的URL。

这是我的代码中提示 Bit.ly 并获得响应的部分:

ApiRequest = "https://api-ssl.bitly.com/v3/shorten?access_token=" & Token & "&longUrl=" & LongURL
With HttpRequest
    .Open "GET", ApiRequest, False
    .Send
End With
Response = HttpRequest.ResponseText
HttpRequest.WaitForResponse
BeginCar = InStr(Response, "hash")
EndCar = BeginCar + 15
BitlyResult = Right(Mid(Response, BeginCar, (EndCar - BeginCar)), 7)
Range("J" & l).Value = "http://bit.ly/" & BitlyResult

如何告诉 Bit.ly 不要缩短截断的 URL 并保留"%3d"等符号?

谢谢

我认为当它用作另一个 url 中的参数时,您必须转义整个 url。问题可能不是%3d而是后面的&(它启动 bitly-url 中的下一个参数)。

尝试逃避这一点

http://domain.com/se/?st=YmUQaIg9PCoCs3vex5XHE1NnqfurVpWsXMXix0QkyO4%3d&p=A43S8C完全是为了
http%3A%2F%2Fdomain.com%2Fse%2F%3Fst%3DYmUQaIg9PCoCs3vex5XHE1NnqfurVpWsXMXix0QkyO4%253d%26p%3DA43S8C

以下是在 Excel 中执行此操作的方法。

最新更新