Hallo zusammen,
ich brauche mal eure Hilfe, da ich mich mit HTTP Requests (grundlegend) nicht auskenne.
Ich habe folgenden Python Code (extern) erhalten (funktioniert) der aber in autoit Konvertiert werden soll (für ggf. interne Anpassungen):
Python
from http.client import HTTPConnection
from base64 import b64encode
import csv
import urllib.parse
from requests.auth import HTTPDigestAuth
import requests
import time
# Benutzer und Passwort
username = 'User'
password = 'PW'
with open('ips.csv', newline='') as csvfile: ;keine Umsetzung benötigt
updateips = csv.reader(csvfile, delimiter=' ', quotechar='|') ;keine Umsetzung benötigt
for row in updateips: ;keine Umsetzung benötigt
print(', '.join(row))
requesturlstart= 'http://' + row[0] + '/!'
requesturl = requesturlstart + urllib.parse.quote(u'Inhalt mit /Befehlen und Leerzeichen,falls relevant'.encode('utf-8'))
print(requesturl)
print(requests.get(requesturl, auth=HTTPDigestAuth(username, password)))
Alles anzeigen
Wie bekomme ich das in AutoIt dargestellt? Habe mich schon anhand Beispielen versucht aber ich glaube ich mache noch etwas grundlegend falsch, da ich mit http bisher gar nichts am Hut hatte:
AutoIt
Func HTTP($IP)
Local $hOpen, $hConnect, $hRequest, $iSupportedSchemes, $iFirstScheme, $iAuthTarget, $sChunk, $sOut, $error
Local Const $sFocus = 'Inhalt mit /Befehlen und Leerzeichen,falls relevant'
$hOpen = _WinHttpOpen()
$hConnect = _WinHttpConnect($hOpen, $IP)
$hRequest = _WinHttpOpenRequest($hConnect, "GET", $sFocus, Default, "", "*/*")
If _WinHttpQueryAuthSchemes($hRequest, $iSupportedSchemes, $iFirstScheme, $iAuthTarget) Then
_WinHttpSetCredentials($hRequest, $iAuthTarget, $iFirstScheme, 'User', 'PW')
_WinHttpSendRequest($hRequest)
_WinHttpReceiveResponse($hRequest)
EndIf
If _WinHttpQueryDataAvailable($hRequest) Then
While 1
$sChunk = _WinHttpReadData($hRequest)
If @error Then
$error = @error
ExitLoop
EndIf
$sOut &= $sChunk
WEnd
EndIf
_WinHttpCloseHandle($hRequest)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
EndFunc
Alles anzeigen
Damit wird eine Konfiguration an ein Gerät übertragen, leider funktioniert meine Variante nicht.