使用Bit.ly来缩短URL的Excel VB并没有通过"%3d"在长URL中

时间:2015-03-11 19:15:25

标签: excel vba url

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

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

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

事实上,当我转到缩短的链接时,我并未定向到完整的网址。

这是我的代码中提示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不缩短截断的网址并保留“%3d”等符号?

谢谢,

1 个答案:

答案 0 :(得分:0)

我认为当它被用作另一个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

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