vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
http Befehl absenden 
Autor: funeddy
Datum: 11.04.18 15:44

Hallo zusammen,

ich wollte über VB einen http befehl an einen Server senden. Der Befehl sieht wie folgt aus.

"http://192.168.10.85/xml/jsonswitch.php?id=1&set=1"

weiss jemand wie ich das realisieren kann. Ich habe es mit folgendem Code probiert.

 
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", "http://192.168.10.85/xml/jsonswitch.php"
xmlhttp.send "?id=1&set=1"
Set xmlhttp = Nothing

aber da scheint kein Befehl an den server zu gehen.

vielen Dank schonmal vorab
VG Joerg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: Franki
Datum: 12.04.18 01:58

Hallo Joerg,

was passiert denn wenn du die Adresse in einem Browser auf rufst?
Was du da im Code hast ist ja nur eine Adressierung an den Server, es ist kein Code vorhanden was der Server als Rückmeldung geben soll. Und wie kontrollierst du, ob der Server die Anfrage erhalten hat bzw. was er als Ergebnis ausgeben möchte? (Logdateien auf dem Server z.B.)

Du musst dein Problem schon etwas genauer beschreiben.
Grade wenn es sich um einen Rechner im lokalen Netzwerk handelt ist das evtl. etwas komplizierter als bei einem Server der per Internet angesprochen wird. Kann auch sein, dass der PHP Code lokal nicht ausgeführt wird z.B.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: funeddy
Datum: 12.04.18 02:56

Hallo Frank,

beim Server handelt es sich um eine IP Steckdose von ALLNET auf der ein kleines linux läuft. Mit dem Befehl:

http://192.168.10.85/xml/jsonswitch.php?id=1&set=1

lässt sich die Steckdose über einen Browser einschalten.
Das funktioniert auch.

Ich möchte die Steckdose aus VB6 heraus schalten können.
Ich denke mal das geht vielleicht auch über das winsock oder wininet.

VG Joerg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: effeff
Datum: 12.04.18 09:16

Warum benutzt Du nicht einfach das BrowserControl und übergibst Deine URI als Parameter?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: funeddy
Datum: 12.04.18 21:02

Vielen Dank für den Tip das werde ich mal ausprobieren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: Franki
Datum: 14.04.18 00:32

Hallo Joerg,
ich kann mich der Antwort von effeff nur anschließen, berichte über das Ergebnis.

Aber warum schreibst du diese Zusatzinfos nicht gleich in die Ausgangsfrage? Wenn von http bzw. Server die Rede ist geht man erst mal davon aus, dass es sich um die Kommunikation mit einem Webserver handelt aus dem eigenen Programm heraus. (Natürlich kämen auch Winsock usw. in Frage)

Aber was sagt denn die Dokumentation deiner Steckdose zu den Parametern die sie beim Aufruf erwartet und was sie zurück liefern kann an den aufrufenden Rechner? Die Steckdose einschalten schön und gut, aber da gibt es ja auch bestimmt auch aus schalten oder eine Statusabfrage ob ein- oder ausgeschaltet usw.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: funeddy
Datum: 14.04.18 11:39

Hallo Frank

ja über das Browsercontrol lässt sich die Steckdose schalten. In der Doku stehen mehrere befehle um die Steckdose abzufragen. Es kommt dann immher eine Datei zurück in der das resultat der Abfrage steht. Wenn ich die Steckdose eingeschaltet oder Ausgeschaltet habe kommt ebenfalls eine Datei zurück in der der Status der Steckdose steht.

sURL = "http://192.168.10.85/xml/jsonswitch.php?id=1&set=1"
 
      WebBrowser1.Navigate sURL
etwa so im Textformat

{"result":{"id":"1","error":0,"status":1,"set":"0"}}

Das gilt auch für andere Abfragen.

Nun habe ich mal noch eine Frage.

Ich werde gefragt ob ich speichern, öffnen oder Abbrechen will.

wie kann ich das unterbinden.
wie kann ich den inhalt der Datei in eine Stringvariable schreiben. Ich möchte nur die Rückgabe werte in eine Variable vom Typ String schreiben.

vielen Dank für die Hilfe
VG Joerg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: funeddy
Datum: 14.04.18 11:58

Hallo nochmal,

ich könnte die Datei auch noch als logfile zwischen speichern und dann den Inhalt in eine Variable schreiben.


VG Joerg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: funeddy
Datum: 15.04.18 12:49

Hallo zusammen,

vielen Dank erst einmal für die vielen Tip's.
ich habe meine nächste Anfrage mal ein bisschen korrigiert.

Ich schalte eine IP Steckdose über das Webbrowser Control. Hier der Code

sURL = "http://192.168.10.85/xml/jsonswitch.php?id=1&set=1"
 
      WebBrowser1.Navigate sURL
Wenn ich das navigate ereignis ausführe schaltet die IP Steckdose und sendet mir eine Datei zurück. In dieser datei stehen die Parameter der Steckdose. windows fragt ob ich öffnen, speichern oder abbrechen will.
Nun meine Frage.
wie kann ich das unterbinden und die Datei sofort speichern. oder.......
wie kann ich den inhalt der Datei in eine Stringvariable schreiben und den Dialog abbrechen.

vielen Dank vorab
VG
Joerg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: Franki
Datum: 16.04.18 02:20

Hallo Joerg,

der Dialog kommt ja vom Browser und ist wahrscheinlich mit dem identisch der auch kommt wenn ein normaler Link innerhalb einer Webseite auf eine Datei zeigt. Aus Sicherheitsgründen wirst du den wohl nicht unterbinden können. (Evtl. mit Sendkeys auf den Speichern Button?)

Hast du Zugriff auf den Quellcode der php Datei?
Daraus könnte sich ergeben wo auf dem Server die Datei gespeichert wird die an den Browser gesendet wird. Du hast auch von einer log Datei gesprochen, welche Dateiendung hat diese? Wenn das eine *.txt Datei ist kannst du sie direkt ansprechen.

Was sagt denn der Hersteller der Steckdose zu deiner Frage?

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: http Befehl absenden 
Autor: funeddy
Datum: 16.04.18 11:48

Hallo Frank,

ich habe es mit folgendem Code hinbekommen.

Private Sub Command2_Click()
 
Dim ipadd As String
Dim sURL As String
Dim sURL1 As String
Dim sParam As String
Dim sExt As String
Dim sLocalFile As String
Dim Cancel As Boolean
Dim Dat1 As String
Dim RetVal As String
Dim Txt As String
Dim bClearCache As Boolean
Dim lResult As Long
 
Open "C:\akku_retter_tmp\ipadd.txt" For Input As #1
 Input #1, ipadd
 Close #1
 
   sURL = "http://" & ipadd & "/xml/jsonswitch.php?id=1&set=1"
 
   Dat1 = App.Path & "\jsonswitch.json"
     Me.MousePointer = vbHo urglass
  If Dir$(Dat1) <> "" Then Kill Dat1
  RetVal = URLDownloadToFile(0, sURL, Dat1, 0, 0)
  Me.MousePointer = vbDefault
  If RetVal <> 0 Then
    MsgBox "Fehler bei Download.", vbCritical + vbOKOnly
    Exit Sub
  End If
  Open Dat1 For Binary As #1
    Txt = Space$(LOF(1))
    Get #1, , Txt
  Close #1
  Text1.Text = Txt
  MsgBox "Download erfolgreich.", vbInformation + vbOKOnly
 
    ' URL-Cache leeren?
    bClearCache = True
  If bClearCache = True Then
    RetVal = DeleteUrlCacheEntry(sURL)
  End If
 
  End Sub
jetzt speichere ich die datei nach dem schalten der IP SteckDose. Das gleiche gilt auch fürs Ausschalten. Da ändert sich nur der Befehl auf set=0.

sURL = "http://" & ipadd & "/xml/jsonswitch.php?id=1&set=0"
vielen Dank für die Hilfe

VG Joerg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel