首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinHttp.WinHttpRequest.5.1 URL ENCODE

WinHttp.WinHttpRequest.5.1 URL ENCODE
EN

Stack Overflow用户
提问于 2019-02-07 18:17:08
回答 2查看 2.3K关注 0票数 0

我试图使用Qrickt API:

api.php

在VBA中为Google地址创建一个QRCode。要做到这一点,我必须发送如下Http请求:

代码语言:javascript
复制
"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“或”通过%20 QRCode“,则生成的QRCode URL总是

代码语言:javascript
复制
http://maps.google.com/maps?q=Via Roma, 1 Milano

因此,QRCode图像是创建的,但手机不直接打开谷歌地图。

有什么家能帮我吗?

,这是代码:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2019-02-07 18:24:11

他们的API接受GET请求,而您正在发送一个帖子。

尝试:

代码语言:javascript
复制
URL = ApiPath + "Via%20Roma%2C%%201%20Milano" + "&qrsize=150&t=p&e=m"

Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

WinHttpReq.Open "GET", URL, False
WinHttpReq.send
票数 1
EN

Stack Overflow用户

发布于 2019-02-07 18:25:30

我想补充的是,您可以考虑使用函数EncodeURL进行编码。

代码语言:javascript
复制
Application.EncodeURL("url")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54579791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档