Visual Basic for Applications:
HTTP-pyynnön lähettäminen perusautentikoinnilla
Kuinka:
VBA:ssa voit käyttää Microsoft XML, v6.0
(MSXML2) kirjastoa lähettääksesi HTTP-pyynnöt perusautentikoinnilla. Tämä sisältää "Authorization"
-otsikon asettamisen pyynnössä sisällyttämään tunnistetiedot base64-koodatussa muodossa. Tässä on askel askeleelta -opas:
Viittaa MSXML2: Ensin varmista, että VBA-projektissasi on viittaus
Microsoft XML, v6.0
kirjastoon. VBA-editorissa, siirry kohtaan Työkalut > Viittaukset ja valitseMicrosoft XML, v6.0
.Luo ja lähetä HTTP-pyyntö: Käytä seuraavaa VBA-koodiesimerkkiä ohjeena. Korvaa
"your_username"
ja"your_password"
todellisilla tunnistetiedoillasi ja muuta URL tarvittaessa.Dim XMLHttp As Object Set XMLHttp = CreateObject("MSXML2.XMLHTTP") Dim url As String url = "http://example.com/api/resource" ' Korvaa oikealla URLilla Dim base64Credentials As String base64Credentials = EncodeBase64("your_username:your_password") XMLHttp.Open "GET", url, False XMLHttp.setRequestHeader "Authorization", "Basic " & base64Credentials XMLHttp.send Debug.Print XMLHttp.responseText ' Tulostaa vastauksen Välitön-ikkunaan
Koodaa tunnistetiedot base64-muotoon: VBA:ssa ei ole sisäänrakennettua toimintoa base64-koodaukseen, mutta voit käyttää tätä mukautettua
EncodeBase64
-funktiota:Function EncodeBase64(text As String) As String Dim arrData() As Byte arrData = StrConv(text, vbFromUnicode) Dim objXML As MSXML2.DOMDocument60 Dim objNode As MSXML2.IXMLDOMElement Set objXML = New MSXML2.DOMDocument60 Set objNode = objXML.createElement("b64") objNode.dataType = "bin.base64" objNode.nodeTypedValue = arrData EncodeBase64 = objNode.Text End Function
Tämä lähettää GET-pyynnön osoitteeseen http://example.com/api/resource
määritetyillä perusautentikointitunnuksilla ja tulostaa vastauksen.
Syväsukellus
Tässä käytetty lähestymistapa, vaikka se onkin tehokas yksinkertaisissa tapauksissa, nojaa perusautentikointiskeemaan, joka lähettää tunnistetiedot helposti dekoodattavassa muodossa (base64-koodaus ei ole salaus). Sen haavoittuvuuden vuoksi, erityisesti ei-HTTPS-yhteyksissä, perusautentikointia ei suositella arkaluonteisten tietojen siirtämiseen internetin yli ilman lisäturvakerroksia kuten SSL/TLS.
Historiallisesti perusautentikointi oli yksi ensimmäisistä kehitetyistä menetelmistä verkkoresurssien käyttöoikeuksien hallintaan. Nykyään uusille sovelluksille yleensä suositaan turvallisempia ja joustavampia autentikointistandardeja, kuten OAuth 2.0. VBA:n rajoitteiden ja edistyneempiin autentikointimenetelmiin vaadittavien ulkoisten riippuvuuksien vuoksi kehittäjät käyttävät usein VBA:ta sisäisissä tai vähemmän turvallisuuskriittisissä ympäristöissä tai käyttävät sitä nopeiden prototyyppien kehittämiseen.
Kun käytät VBA:ta HTTP-pyyntöihin, muista, että MSXML-kirjaston eri versiot saattavat tukea erilaisia ominaisuuksia ja turvallisuusstandardeja. Käytä aina sovellukseesi sopivaa uusinta versiota varmistaaksesi paremman turvallisuuden ja suorituskyvyn. Lisäksi harkitse ympäristön rajoituksia ja mahdollisesti vanhentuneita ominaisuuksia valitessasi VBA:ta uusiin projekteihin, erityisesti niissä, jotka vaativat turvallista HTTP-viestintää. Muut ohjelmointiympäristöt tai -kielet voivat tarjota vastaaviin tehtäviin vankempia, turvallisempia ja ylläpidettävämpiä ratkaisuja.