German Widget - Daten von Webseite holen

TekkieLex

Member
Licensed User
Longtime User
Hallo Zusammen,

Ich stehe grad vor einem Fragezeichen.

Thema:
Das Widget soll alle 30min bestimmte werte von einer Webseite abrufen und dies auf dem Widget anzeigen.

Problem:
Um die Werte von der Webseite abzurufen muss ich mich auf der webseite (login page First) anmelden,anschließend kommt nochmals ein zweites Sicherheitspasswort abfrage (second login page).

Um dies zu Bewerkstelligen hab ich bis dato immer per Webview und Javascript auf automatische ausfühlen der Form und Automatisierten klick's realisiert.

Nun stellt sich mir die frage wie kann ich das in einem Hintergrundprozess umsetzen wo ich doch kein Activity für Webview habe?!

Grüße
Alexander
 
Last edited:

JanPRO

Well-Known Member
Licensed User
Longtime User
Am besten du nutzt dafür ein Webrequest. Zusätzlich empfehle ich dir dieses Plugin (gitbs auch für Chrome). Damit weißt du dann wie du was an den Server senden musst ;)


Achso: Voraussetzung für diese Lösung ist natürlich, dass der Login per PHP geschieht
 
Last edited:

TekkieLex

Member
Licensed User
Longtime User
Danke erst einmal für deine Antwort JanPRO.

Die Webseite ist keine PHP sondern eine ASP.NET Webseite.

Ich hab mal zwei Screenshot gemacht was bei POST passiert und was als GET zurück kommt.

vielleicht hilf das etwas weiter.

wie gehe ich das am besten mit dem Webrequest ? gibt es ein beispiel dazu?


Bild1.png Bild2.png
 
Last edited:

JanPRO

Well-Known Member
Licensed User
Longtime User
Ja, hier ist ein kleines Beispiel mit dem man sich hier am Froum anmelden kann:

B4X:
Sub Login(Username As String, Password As String)
   
    Dim SU As StringUtils
    Username = SU.EncodeUrl(Username,"UTF8")
    Password = SU.EncodeUrl(Password,"UTF8")
   
    Dim HJ As HttpJob
    HJ.Initialize("Login",Me)
    HJ.PostString("https://www.b4x.com/android/forum/login/login",$"login=${Username}&register=0&password=${Password}&cookie_check=0&redirect=%2Fandroid%2Fforum%2F&_xfToken="$)
End Sub

Sub JobDone (Job As HttpJob)
    Select Job.JobName
        Case "Login"
            Dim CheckText As String = "login/login"
           
            If Job.GetString.Contains(CheckText) Then
                Log("Anmeldung nicht möglich")
            Else
                Log("Anmeldung erfolgreich")
            End If
    End Select
End Sub

Vergess nicht StringUtils und HttpUtils2 zum Projekt hinzuzufügen ;)

Achso und die PostDaten habe ich mithilfe des Plugins herausgefunden ....
 
Top