- Mitglied seit
- 17 Okt 2007
- Beiträge
- 15
- Punkte für Reaktionen
- 0
- Punkte
- 1
Hallo,
ich versuche mittels micropython von einem Raspberry Pi Pico per TR-064 auf die Fritzbox zuzugreifen und (im ersten Step) daten für die Autentifizierung (nonce) zu ermitteln.
Die FB scheint erreichbar zu sein, ich erhalte jedoch eine Antwort UPNP-Error 502, XML-Error. Mir ist nicht klar woher der Fehler genau kommt - ggf. liegt es am verwendeten XML ...
Hat jemand eine Idee woran das liegen könnte? - ich bin langsam am verzweifeln - jede Hilfe wäre willkommen!
Hier die Ausgabe meines miniprogramms inklusive der verwendeten Werte (Url, Header, data) und danach der relevante Programmausschnitt, falls das bei der Analyse weiter hilft ...
url = http://192.168.178.1:49000/upnp/control/hosts
header = {'SoapAction': 'urn:dslforum-org:service:Hosts:1#X_AVM-DE_GetHostListPath', 'Content-Type': 'text/xml; charset = "utf-8"'}
data = <?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:InitChallengexmlns:h="http://soap-authentication.org/digest/2001/10/"s:mustUnderstand="1"><UserID>"fbadmin"</UserID> </h:InitChallenge></s:Header> <s:Body><u:X_AVM-DE_GetHostListPath xmlns:u="urn:dslforum-org:service:Hosts:1"></u:X_AVM-DE_GetHostListPath"></s:Body></s:Envelope>
response = <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>502</errorCode>
<errorDescription>XML error</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
hier der verwendete Code -(der ist nicht wirklich schön, dient aber erstmal nur zum grundsätzlichen Testen)
user = 'fbadmin'
import mrequests as requests
header1 = { 'SoapAction' : 'urn:dslforum-org:service:Hosts:1#X_AVM-DE_GetHostListPath', 'Content-Type' : 'text/xml; charset = "utf-8"'}
data1 = '<?xml version=\"1.0\" encoding=\"utf-8\"?>' \
'<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"' \
'xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">' \
'<s:Header>' \
'<h:InitChallenge' \
'xmlns:h="http://soap-authentication.org/digest/2001/10/"' \
's:mustUnderstand="1">' \
'<UserID>"fbadmin"</UserID> ' \
'</h:InitChallenge>' \
'</s:Header> ' \
'<s:Body>' \
'<u:X_AVM-DE_GetHostListPath xmlns:u="urn:dslforum-org:service:Hosts:1"></u:X_AVM-DE_GetHostListPath">' \
'</s:Body>' \
'</s:Envelope>'
url1 = 'http://fritz.box:49000/upnp/control/hosts'
wlanConnect()
# get nonce, contained by responce
response = requests.post(url1, data=data1, headers=header1)
print()
print('url = ', url1)
print()
print('header = ', header1)
print()
print('data = ', data1)
print()
print('response = ', response.text)
PS.: Ich habe in dieser Gruppe schonm andere TR-064 Fragen gesehen daher meien Frage in dieser Gruppe - falls ich falsch bin, bitte ein kurzer Hinweis.
ich versuche mittels micropython von einem Raspberry Pi Pico per TR-064 auf die Fritzbox zuzugreifen und (im ersten Step) daten für die Autentifizierung (nonce) zu ermitteln.
Die FB scheint erreichbar zu sein, ich erhalte jedoch eine Antwort UPNP-Error 502, XML-Error. Mir ist nicht klar woher der Fehler genau kommt - ggf. liegt es am verwendeten XML ...
Hat jemand eine Idee woran das liegen könnte? - ich bin langsam am verzweifeln - jede Hilfe wäre willkommen!
Hier die Ausgabe meines miniprogramms inklusive der verwendeten Werte (Url, Header, data) und danach der relevante Programmausschnitt, falls das bei der Analyse weiter hilft ...
url = http://192.168.178.1:49000/upnp/control/hosts
header = {'SoapAction': 'urn:dslforum-org:service:Hosts:1#X_AVM-DE_GetHostListPath', 'Content-Type': 'text/xml; charset = "utf-8"'}
data = <?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:InitChallengexmlns:h="http://soap-authentication.org/digest/2001/10/"s:mustUnderstand="1"><UserID>"fbadmin"</UserID> </h:InitChallenge></s:Header> <s:Body><u:X_AVM-DE_GetHostListPath xmlns:u="urn:dslforum-org:service:Hosts:1"></u:X_AVM-DE_GetHostListPath"></s:Body></s:Envelope>
response = <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>502</errorCode>
<errorDescription>XML error</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
hier der verwendete Code -(der ist nicht wirklich schön, dient aber erstmal nur zum grundsätzlichen Testen)
user = 'fbadmin'
import mrequests as requests
header1 = { 'SoapAction' : 'urn:dslforum-org:service:Hosts:1#X_AVM-DE_GetHostListPath', 'Content-Type' : 'text/xml; charset = "utf-8"'}
data1 = '<?xml version=\"1.0\" encoding=\"utf-8\"?>' \
'<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"' \
'xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">' \
'<s:Header>' \
'<h:InitChallenge' \
'xmlns:h="http://soap-authentication.org/digest/2001/10/"' \
's:mustUnderstand="1">' \
'<UserID>"fbadmin"</UserID> ' \
'</h:InitChallenge>' \
'</s:Header> ' \
'<s:Body>' \
'<u:X_AVM-DE_GetHostListPath xmlns:u="urn:dslforum-org:service:Hosts:1"></u:X_AVM-DE_GetHostListPath">' \
'</s:Body>' \
'</s:Envelope>'
url1 = 'http://fritz.box:49000/upnp/control/hosts'
wlanConnect()
# get nonce, contained by responce
response = requests.post(url1, data=data1, headers=header1)
print()
print('url = ', url1)
print()
print('header = ', header1)
print()
print('data = ', data1)
print()
print('response = ', response.text)
PS.: Ich habe in dieser Gruppe schonm andere TR-064 Fragen gesehen daher meien Frage in dieser Gruppe - falls ich falsch bin, bitte ein kurzer Hinweis.
Zuletzt bearbeitet: