Seite 1 von 1
Webseite Daten übergeben mittels POST
Verfasst: 16.11.2015 22:28
von Tränenmond
Hi,
Ich habe ein kleines Problem, ich möchte einer Webseite mein Usernamen und Passwort übergeben um mich mit dieser zu verbinden.
Es funktioniert hier aber nicht normal mit den in dem Aufruf übergebenen Daten sondern es möchte mittels POST übergeben werden!
Leider komme ich derzeit nicht richtig klar damit, ich verstehe atm. nicht wie ich dieser Webseite Ihre benötigten Daten anordnen und übertragen kann
Code: Alles auswählen
InitNetwork()
Buffer = ReceiveHTTPMemory("https://api.hitbox.tv/auth/login")
If Buffer
SizeB = MemorySize(Buffer)
Back$ = PeekS(Buffer, SizeB, #PB_UTF8)
Debug Back$
EndIf
Dieser Code gibt natürlich eine von der Seite generierte Fehlermeldung zurück, da ja die Login Daten fehlen. Aber egal wie ich es getestet habe diese dort mit unterzubringen, es funktioniert leider nicht. Ich habe mir auch diverse Beispiele aus dem Deutschen und Englischen Forum angesehen aber auch dort bekomme ich den Code nicht wirklich so Angepasst das es funktioniert ? Es gibt eine API um mit der Webseite zu kommunizieren,
http://developers.hitbox.tv/#authentication. Meine Hoffnung ist nun das es jemanden gibt der mir ein einigermaßen Lauffähiges Beispiel geben könnte. Wie gesagt ich bin zwar eine Anfängerin aber ganz so Blutig ist das jetzt auch nicht, nur dieses Thema entzieht sich mir völlig!
LG Träne
Re: Webseite Daten übergeben mittels POST
Verfasst: 17.11.2015 10:25
von edel
Mit dem laden der Seite ist es leider nicht getan, denn deine Postdaten muessen ja noch irgendwo hin. Versuche es mal so :
Code: Alles auswählen
#TIMEOUT = 1000
#CHUNKSIZE = 512
InitNetwork()
EnableExplicit
Structure Loginstruct
login.s
pass.s
rememberme.s
EndStructure
Structure Responsestruct
user_id.s
user_name.s
user_logo.s
user_logo_small.s
user_banned.s
user_partner.s
user_banned_channel.s
superadmin.s
livestream_count.s
followers.s
authToken.s
login.s
Data.s
EndStructure
Procedure.s Login()
Protected cid.i
Protected header.s
Protected timeout.l
Protected buflen.l
Protected buffer.s
Protected result.s
Protected login.Loginstruct
Protected json.i
cid = OpenNetworkConnection("api.hitbox.tv", 80)
If cid
header = "POST /auth/login HTTP/1.1" + #CRLF$
header + "Host: api.hitbox.tv" + #CRLF$
header + "Content-Type: text/html" + #CRLF$
header + "Content-Length: "
login\login = "lala3"
login\pass = "m,.123456"
login\rememberme = ""
json = CreateJSON(#PB_Any)
If json
InsertJSONStructure(JSONValue(json), login, Loginstruct)
result = ComposeJSON(json)
result = result
FreeJSON(json)
header + "" + Len(result)
header + #CRLF$ + #CRLF$
SendNetworkString(cid, header)
SendNetworkString(cid, result)
timeout = ElapsedMilliseconds()
result = ""
Repeat
If NetworkClientEvent(cid) = #PB_NetworkEvent_Data
Repeat
buffer = Space(#CHUNKSIZE)
buflen = ReceiveNetworkData(cid, @buffer, #CHUNKSIZE)
result + PeekS(@buffer, buflen, #PB_UTF8)
Until buflen < #CHUNKSIZE
result = StringField(result, 2, #CRLF$ + #CRLF$)
Break
EndIf
Until ElapsedMilliseconds() - timeout > #TIMEOUT
CloseNetworkConnection(cid)
EndIf
EndIf
ProcedureReturn result
EndProcedure
Define response.Responsestruct
Define result.s = login()
Define json = ParseJSON(#PB_Any, result)
Debug result
ExtractJSONStructure(JSONValue(json), @response, Responsestruct)
Debug json
Debug response\user_id
Debug response\user_name
Debug response\user_logo
Debug response\user_logo_small
Debug response\user_banned
Debug response\user_partner
Debug response\user_banned_channel
Debug response\superadmin
Debug response\livestream_count
Debug response\followers
Debug response\authToken
Debug response\login
Debug response\Data
Logindaten musst du natuerlich noch anpassen. Eventuell auf https umstellen.
Re: Webseite Daten übergeben mittels POST
Verfasst: 17.11.2015 18:54
von Tränenmond
Ich Danke dir, dein Beispiel funktioniert Perfekt. Es ist zudem eine gute Grundlage um daraus zu lernen!
Sehr nette Community, ich hätte nie mit einer so schnellen und in diesem Umfang einwandfrei funktionierenden Lösung gerechnet.
LG Träne
Re: Webseite Daten übergeben mittels POST
Verfasst: 17.11.2015 19:44
von xXRobo_CubeXx
Hi Tränenmond

Wie bist du auf deinen Namen gekommen?
Inspiration aus Sims LP von Gronkh?

Re: Webseite Daten übergeben mittels POST
Verfasst: 19.11.2015 20:21
von Tränenmond
Hi Robo_Cube
Ganz genau da habe ich den her, und ich finde den Namen schön
LG Träne
Re: Webseite Daten übergeben mittels POST
Verfasst: 19.11.2015 20:41
von GronkhLP
Das freut mich zu hören.
