Wenn ich das richtig verstanden habe:
Code: Select all
#NoEnv
username := "xxx"
password := "xxx"
auth := username . ":" . password
Base64encUTF8(authenc, auth )
objHTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
url := "https://login.meteomatics.com/api/v1/token"
objHTTP.Open("GET", url, false)
objHTTP.SetRequestHeader("Authorization", "Basic " . authenc)
objHTTP.Send()
if (objHTTP.Status = 200) {
MsgBox, % "Token: " . objHTTP.ResponseText
} else {
MsgBox, % "Error: " . objHTTP.Status . "`n" . objHTTP.ResponseText
}
Base64encUTF8( ByRef OutData, ByRef InData )
{ ; by SKAN + my modifications to encode to UTF-8
InDataLen := StrPutVar(InData, InData, "UTF-8") - 1
DllCall( "Crypt32.dll\CryptBinaryToStringW", UInt,&InData, UInt,InDataLen, UInt,1, UInt,0, UIntP,TChars, "CDECL Int" )
VarSetCapacity( OutData, Req := TChars * ( A_IsUnicode ? 2 : 1 ), 0 )
DllCall( "Crypt32.dll\CryptBinaryToStringW", UInt,&InData, UInt,InDataLen, UInt,1, Str,OutData, UIntP,Req, "CDECL Int" )
Return TChars
}
StrPutVar(string, ByRef var, encoding)
{
; Ensure capacity.
VarSetCapacity( var, StrPut(string, encoding)
; StrPut returns char count, but VarSetCapacity needs bytes.
* ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) )
; Copy or convert the string.
return StrPut(string, &var, encoding)
}