German Anfängerfrage : HTTP Port Ansteuerung

TheGerman

Member
Licensed User
Longtime User
Hallo,

als absoluter Neuling bräuchte ich Hilfe denn ich komme kein Stück weiter ...

Was ich möchte scheint mir eigentlich ein Triviales Problem zu sein :

ein Paar Buttons die an einen Webserver eine kurze Message senden so dass dieser mir einen Port schaltet.

Über einen Webbrauser funktioniert das in Folgendem Format einwandfrei :
http://198.162.1.24/go 1 bis http://198.162.1.24/go 255
als Antwort kommt eine kurze Webseite - die ich auch gerne auswerten möchte
- aber das ist der 2. Schritt - vieleicht kann man das ja in einen String einlesen (?)
und das nicht jeder den Port setzen kann ist das ganze über Username und Paswort geschützt.

Ich habe mir also die HTTPUtils2 geholt und die beiden Files HttpJob.bas & HttpUtils2Service.bas über add existing Module eingebunden und vieles ausprobiert ...

aber leider immer nur diverse Java Errormeldungen oder "android.permission.INTERNET needed"

Sub Button1_Click
Dim job As HttpJob
job.UserName ="admin"
job.Password ="admin"
job.PostString ("http://198.162.1.24/","go 1")
ProgressDialogShow2("go 1 ", False)
End Sub
(aus FlickerViewer + selbstgebasteltes...)

Ich bin für jeden Tipp dankbar - besonders aber für ein geziptes Projekt denn als absoluter Neuling mach ich vieleicht irgend etwas generelles falsch ...

Danke !
 

Hubert Brandel

Active Member
Licensed User
Longtime User
Hi,
ich habe zwar mit B4A noch nicht auf meine Web-Server Anwendungen zugegriffen, aber wenn ich "PostString" lese, vermute ich eher, dass damit der Aufruf eines HTTP Formulares (<FORM...>) gemeint ist, das der Server seinerseits über ein CGI-Programm verarbeiten und beantworten müsste.

"android.permission.INTERNET needed" bedeutet, dass deine APP nicht genug Rechte angefordert oder von DIR bei der Installation zugestanden bekommen hat.

URL/GO 1 kenne ich nicht, möglich dass es eine GO.PHP gibt, die 1 als Parameter verarbeitet, aber das ist eine normale URL Anfrage ( GET ) und kein Formular mit POST Daten.
 

TheGerman

Member
Licensed User
Longtime User
Hi,

DANKE für die Antwort !!!

Ja das ist es was ich gemeint habe...
Die Nachfrage hat mir klar gemacht was ich eigentlich wollte ;-)

:sign0013: - ich glaub das ich mich sehr missverständlich ausgedrückt habe :sign0013:

Was ich mit "Web-Server" sie eine kleine Platine von Pollin AVR-NET-IO :
Bausatz AVR-NET-IO - Bausätze / Module - Bausätze - - Pollin Electronic
auf der ein Programm läuft das sich Web Server nennt und schon seit einiger Zeit meine Rolläden steuert...
Den Befehl "Go 0" bis "Go 255" habe ich dazu verwendet um den Port direkt durschzusteuern.
:signOops: Aber auch das habe ich nicht ganz richtig wiedergegeben ... :signOops:

Was ich tatsächlich eingebe ist : "http://192.168.1.24/go_1.htm" u.s.w.
und das klappt auch mit : UrlToLoad="http://192.168.1.24/go_1.htm"
funktioniert es ...

jetzt bräuchte ich noch das Password und den Username...
Irgendwie hab ich noch keine Ahnung wie ich hier richtig suchen kann

OK - Zugegeben - vermutlich liegt es an meinen Englischkentnissen ...

Irgend ein Tipp ?
 

Hubert Brandel

Active Member
Licensed User
Longtime User
Hi,

wie DEIN Passwort und Usernamen ist kann ich dir nicht sagen, aber als Internetstandard kann man beides in der URL übergeben ... natürlich kann das jeder mitlesen der sich zwischen dich und den Server hängt (z.B. freier WLan Spot ...) ... außer man verwendet HTTPS:// als Protokoll ;-)

Hier ist die komplette Erklärung (Wikipedia ist fast immer richtig Klasse !)
Uniform Resource Locator – Wikipedia
oder die Kurzform:
http://user:kennwort@192.168.1.24/go_1.htm

um das aber vom externen Internet aufzurufen musst du die Firewall des Routers einrichten, damit er solche Anfragen an die lokale IP Adresse durchläßt und den Router z.B. bei DynDns.org registrieren, damit du einen festen Namen erhälst, der erst zur aktuellen IP Adresse umgewandelt wird.
 

TheGerman

Member
Licensed User
Longtime User
Hi,

DANKE für die Antwort !!!

Diesmal ist Deine Antwort "im Prinzip richtig" soll heisen :
wenn ich im Firefox die URL eingebe :"http://Admin:German@192.168.1.24/go_1.htm" funktioniert es ...
im UrlToLoad="http://user:kennwort@192.168.1.24/go_1.htm" geht es aber leider Nicht - es bleibt bei 401 unauthorized...
 

TheGerman

Member
Licensed User
Longtime User
Es kann so einfach sein :

WebView1 hat dafür einen Member :

Sub WebView1_UserAndPasswordRequired (Host As String, Realm As String) As String()
Return Array As String("Username", "Password")
End Sub

und der funktioniert einwandfrei - wenn man es findet ;-)

DANKE
 
Top