VBA发布请求来自需要密钥的API

时间:2017-01-05 14:21:56

标签: vba curl access-vba access

我是新人,真的很喜欢人们愿意帮助的方式。我有一个访问数据库来管理学生信息和一个单独的网站,学生可以在其中注册他们的基本信我创建一个api来获取学生信息的xml或json格式,以便我可以将它导入我的数据库。以下是api的卷曲: curl -F" apikey = d8a40f77-69b5-4ef7-b554-d8f86382101c" " http://ktsstf.org/call.php?apicall=registration.data&apiDataType=xml"

curl命令运行没有问题。但是,我在vba中的代码一直给我一个错误"失败:错误的api密钥" 以下是代码,如果你们能帮助我,我真的很感激

Public Sub getscholar()
Dim webServiceURL As String
Dim actionType As String
Dim targetWord As String
Dim actionType2 As String
Dim targetWord2 As String

webServiceURL ="http://ktsstf.org/call.phpapicall=registration.data&apiDataType=xml"
      actionType = "Content-Type"
      targetWord = "text/xml"
      actionType2 = "Authorization"
      'targetWord2 = "apikey" + "d8a40f77-69b5-4ef7-b554-d8f86382101c"
      targetWord2 = "Basic " & ("d8a40f77-69b5-4ef7-b554-d8f86382101c")

    ' use late binding
      With CreateObject("Microsoft.XMLHTTP")
        .Open "POST", webServiceURL, False
        .setRequestHeader actionType, targetWord
        .setRequestHeader actionType2, targetWord2
        .send
        If .Status = 200 Then
          Debug.Print .responseText
          MsgBox .GetAllResponseHeaders
        Else
          MsgBox .Status & ": " & .StatusText
        End If
      End With

    End Sub

1 个答案:

答案 0 :(得分:0)

-F参数用于HTTP POST数据。

您应该修改您的Web服务调用,以便在postdata中提供apikey而不是Authorization标头。