Я пытаюсь использовать API Qrickt
https://qrickit.com/qrickit_apps/qrickit_api.php
для создания QRCode для адреса Google Map в VBA.Для этого я должен отправить Http-запрос следующим образом:
"http://qrickit.com/api/qr.php?d=http://google.com/maps?q=Via+Roma,+1+Milano&qrsize=150&t=p&e=m"
Документация API гласит:
* Для неанглийских и специальных символов, URL-адрес сначала кодирует ваши данные.
Проблема в том, что мне не удается передать закодированный адрес в API.Если я передаю строку, такую как «Via + Roma» или «Via% 20Roma», сгенерированный URL-адрес QRCode всегда
http://maps.google.com/maps?q=Via Roma, 1 Milano
, поэтому изображение QRCode создается, но телефон не открывается непосредственно в Google Maps..
Может ли кто-нибудь помочь мне?
Спасибо
Вот код:
Public Function f_QRCode(ByVal Address As String, ByVal Destination As String) As Boolean
On Error GoTo Err_Handler
Const ApiPath As String = "https://qrickit.com/api/qr.php?d=http://maps.google.com/maps?q="
Dim WinHttpReq As Object '\\ Oggetto che serve al download del verbale
Dim fic As Integer
Dim buffer() As Byte
Dim URL As String
'\\ Costruisco l'URL
URL = ApiPath + "Via%20Roma%2C%%201%20Milano" + "&qrsize=150&t=p&e=m"
'\\ Creo l'oggetto per la connessione
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
WinHttpReq.Open "POST", URL, False
WinHttpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
WinHttpReq.send
If WinHttpReq.Status = 200 Then
fic = FreeFile
Open Destination For Binary Lock Read Write As #fic
buffer = WinHttpReq.responseBody
Put #fic, , buffer
Close #fic
f_QRCode = True
Else
MsgBox "Error"
End If
ExitHere:
Erase buffer
Set WinHttpReq = Nothing
Exit Function
Err_Handler:
Resume ExitHere
End Function