wie kann ich POST-Daten an HTTPRequestMemory() übergeben?
Beispielsweise:
username="Peter"
password="12345"
Code: Alles auswählen
HttpRequest = HTTPRequestMemory(#PB_HTTP_Post, "http://meineSeite", ?...
Code: Alles auswählen
HttpRequest = HTTPRequestMemory(#PB_HTTP_Post, "http://meineSeite", ?...
Code: Alles auswählen
InitNetwork()
Define PostParams.s = "xhr=1&sid=[GueltigeSID]&lang=de&page=log&xhrId=all&no_sidrenew="
NewMap Header$()
Header$("Content-Type") = "application/x-www-form-urlencoded"
Header$("Content-Length") = Str(StringByteLength(PostParams))
HttpRequest = HTTPRequestMemory(#PB_HTTP_Post, "http://fritz.box/data.lua", @PostParams, StringByteLength(PostParams), 0, Header$())
If HttpRequest
Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
Debug "Response: " + HTTPInfo(HTTPRequest, #PB_HTTP_Response)
FinishHTTP(HTTPRequest)
Else
Debug "Request creation failed"
EndIf
Code: Alles auswählen
EnableExplicit
InitNetwork()
Define *PostParams
Define HTTPRequest
*PostParams = UTF8("xhr=1&sid=[GueltigeSID]&lang=de&page=log&xhrId=all&no_sidrenew=")
HttpRequest = HTTPRequestMemory(#PB_HTTP_Post, "http://fritz.box/data.lua", *PostParams, MemorySize(*PostParams))
If HttpRequest
Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
Debug "Response: " + HTTPInfo(HTTPRequest, #PB_HTTP_Response)
FinishHTTP(HTTPRequest)
Else
Debug "Request creation failed"
EndIf
ja, das frage ich mich jetzt (nach Studium der Hilfe) allerdings auch...Sicro hat geschrieben:Wieso nimmst du nicht einfach den Befehl "HTTPRequest()"?
mk-soft hat geschrieben:wenn du so weit bist, kannst du mal schreiben wie man die Anruferlisten abfragen kann.
Code: Alles auswählen
InitNetwork()
HttpRequest = HTTPRequest(#PB_HTTP_Post, "http://fritz.box/data.lua", "xhr=1&sid=[DeineSID]&lang=de&page=dialLi&no_sidrenew=")
If HttpRequest
Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
Debug "Response: " + HTTPInfo(HTTPRequest, #PB_HTTP_Response)
FinishHTTP(HTTPRequest)
Else
Debug "Request creation failed"
EndIf
Für das Anmelden und Ermitteln der SID habe ich im Forum folgenden Code gefunden (finde die Quelle momentan leider nicht mehr):mk-soft hat geschrieben:Man muss sich ja anmelden um diese Daten abzufragen.
Code: Alles auswählen
EnableExplicit
InitNetwork()
Global uiPass.s, gSeite.s, user.s
UseMD5Fingerprint()
uiPass = "DeinPass"
user.s = "DeinUser"
Procedure SeiteLaden(Seite.s)
Protected *Buffer
Protected Size
gSeite = ""
*Buffer = ReceiveHTTPMemory("http://fritz.box" + Seite)
If *Buffer
Size = MemorySize(*Buffer)
gSeite = PeekS(*Buffer, Size, #PB_UTF8|#PB_ByteLength)
FreeMemory(*Buffer)
Else
MessageRequester("Fehler", "Fehler beim Laden der Seite" + #CRLF$ + Seite)
EndIf
EndProcedure
Procedure.s FindeDaten(Suche.s, Stelle = 1, eSuche.s = "")
Protected aSuche.s
Protected PzWertA.s
aSuche.s = "<" + Suche + ">"
If eSuche = "" : eSuche.s = "</" + Suche + ">" : EndIf
PzWertA.s = StringField(gSeite, Stelle + 1, aSuche)
ProcedureReturn StringField(PzWertA, 1, eSuche)
EndProcedure
Procedure.s fbSID()
Protected *Buffer
Protected PzWertC.s
Protected PzWertA.s
Protected PzWertB.s
Protected a
SeiteLaden("/login_sid.lua")
*Buffer = AllocateMemory(200)
PzWertC.s = FindeDaten("Challenge")
PzWertA.s = PzWertC + "-" + uiPass
For a = 1 To Len(PzWertA)
PokeC(*Buffer + a + a - 2, Asc(Mid(PzWertA,a,1)))
PokeC(*Buffer + a + a - 1, 0)
Next
PzWertB.s = Fingerprint(*Buffer, Len(PzWertA) + Len(PzWertA),#PB_Cipher_MD5)
FreeMemory(*Buffer)
SeiteLaden("/login_sid.lua?response=" + PzWertC + "-" + PzWertB + "&username=" + user)
ProcedureReturn FindeDaten("SID")
EndProcedure
Define SID.s
SID = fbSID()
Debug SID
Quelle nachreichKiffi hat geschrieben: Für das Anmelden und Ermitteln der SID habe ich im Forum folgenden Code gefunden (finde die Quelle momentan leider nicht mehr):