Integrações com APIs REST são comuns em projetos ASP Clássico. A classe MSXML2.ServerXMLHTTP permite realizar requisições HTTP de forma simples e configurar headers, autenticação e timeouts.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>GET em API</title>
</head>
<body>
<%
On Error Resume Next
Dim http, url
Set http = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
url = "https://api.exemplo.com/v1/itens"
http.open "GET", url, False
http.setRequestHeader "Accept", "application/json"
http.setTimeouts 3000, 3000, 5000, 5000 ' connect, send, receive, resolve
http.send
If Err.Number = 0 Then
If http.status = 200 Then
Response.Write(http.responseText)
Else
Response.Write("Erro: " & http.status & " - " & http.statusText)
End If
Else
Response.Write("Falha de rede: " & Err.Description)
End If
On Error GoTo 0
%>
</body>
</html>
Dica: para parse de JSON, utilize uma biblioteca de JSON para VBScript (por exemplo, aspjson) ou um componente COM. Evite fazer parse manual com string replace.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>POST em API</title>
</head>
<body>
<%
Dim http, url, payload, token
Set http = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
url = "https://api.exemplo.com/v1/itens"
payload = "{""nome"":""Teste""}"
token = "SEU_TOKEN_AQUI"
http.open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & token
http.setTimeouts 3000, 3000, 5000, 5000
http.send payload
If http.status >= 200 And http.status < 300 Then
Response.Write(http.responseText)
Else
Response.Write("Erro: " & http.status & " - " & http.statusText)
End If
%>
</body>
</html>
Boas práticas: valide códigos HTTP, trate timeouts e retries, registre logs (status, latência) e oculte segredos (tokens) fora do código-fonte.
http.setRequestHeader("Authorization", "Bearer SEU_TOKEN"). Armazene o token fora do código (variáveis de ambiente/arquivos protegidos).http.setTimeouts connect, send, receive, resolve (em ms). Ex.: http.setTimeouts 3000,3000,5000,5000.http.status, envolva com On Error Resume Next e teste Err.Number. Logue e aplique retry apenas quando apropriado.Precisa gerar senhas, validar CPF/CNPJ ou criar QR Code? Acesse nossos Geradores e Validadores Online.