| |
Visual-Basic Einsteigerhttp 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 | |
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 | |
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 | |
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 | |
Re: http Befehl absenden | | | Autor: funeddy | Datum: 12.04.18 21:02 |
| Vielen Dank für den Tip das werde ich mal ausprobieren. | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
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
|
|