【问题标题】:How to use RapidAPI with VBA Excel (WhoIs Domain Name)如何在 VBA Excel 中使用 RapidAPI(WhoIs 域名)
【发布时间】:2022-01-21 16:20:30
【问题描述】:

我找到了一些关于同一主题的其他帖子,但没有明确的信息或没有回答,所以如果有人能帮助我解决这个问题,我将不胜感激。

我在 Excel 中的 VBA 代码上使用 RapidAPI,但无法使其正常工作,这让我很头疼。我正在尝试从 A 列中列出的域名中检索 WhoIs 信息,API 答案应该在 B 列中。谁能给我指点一下?

来源:https://rapidapi.com/jsonwhois.com/api/json-whois-screenshots-google-social-data/

Function GetWhoIs(DomainName As String)
    Dim json, Url, params As String
    Dim jsonObject, objHTTP, strResult, objetoJson As Object
    Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    Url = "https://jsonwhois.p.rapidapi.com/api/v1/whois/"
    objHTTP.Open "GET", Url, False
    objHTTP.setRequestHeader "authorization", "Token token=xxxxxxxxxxxxxxxxxx"
    objHTTP.setRequestHeader "x-rapidapi-host", "jsonwhois.p.rapidapi.com"
    objHTTP.setRequestHeader "x-rapidapi-key", "xxxxxxxxxxxxxxxxxxxxxxxx"
    params = "domain=" + DomainName
    objHTTP.Send (params)
    strResult = objHTTP.responseText
    json = strResult
    Set objetoJson = JsonConverter.ParseJson(json)
    GetWhoIs objetoJson
End Function

Sub combine()
    Dim a As String
    For Each a In Range("A2:A50")
        If Not IsEmpty(a.Value) Then
            Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = GetWhoIs(a.Value)
    Next a
End Sub

【问题讨论】:

  • 你得到什么错误?
  • 我在函数内部的“GetWhoIs objetoJson”上得到“ByRef 参数类型不匹配”。但实际上我不知道如何解决它,我已经尝试了很多东西,但没有任何结果。
  • 你在哪一行得到这个错误?总是有助于提供有关您在代码中遇到的特定问题的详细信息。在 VBA 中仅供参考,如果您有一个以逗号分隔的变量列表,最后带有 ... As XXX - 只有最后一个变量获得该 XXX 类型:其他所有变量都是 Variant。
  • GetWhoIs objetoJson 正在调用函数递归地传递对象作为参数,而函数需要一个字符串。您可能想要删除该行并将上面的行更改为Set GetWhoIs= JsonConverter.ParseJson(json)。但是,您不能将对象写入需要从中提取数据的工作表。为此,您需要了解 Jason 字符串的结构。

标签: json excel vba api


【解决方案1】:

您正在使用 GET,但也在请求正文中发送数据 - 这通常仅在 POST 操作中完成。对于 GET 来说,应该确实在 URL 查询字符串中。

Url = "https://jsonwhois.p.rapidapi.com/api/v1/social?domain=" & DomainName 

并从.Send 行中删除(params)

【讨论】:

  • 我听从了您的建议,但仍然无法正常工作。我在函数内部的“GetWhoIs objetoJson”上得到“ByRef 参数类型不匹配”。有什么想法吗?
猜你喜欢
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
相关资源
最近更新 更多