URL senden ?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Rocco
User
Beiträge: 5
Registriert: Freitag 8. April 2011, 17:01

Hi

ich nutze python 2.6 und möchte per definierten Button eine Url senden ( http://192.168.178.xx/?3=einschalten)

Button Gui soweit ok , Menü der IP einstellung funktioniert auch , nur Url kann nicht abgerufen werden,springt gleich auf Webserver nicht ereichbar ? evt. finde ich den Fehler in der Syntax nicht ...

Code: Alles auswählen

def sendGET(self, action=None):
        if not action:
            action = 'einschalten'
        button_id = self.getSetting('button_id_1')
        hostname = self.getSetting('box_hostname')
        url = 'http://%s/?%s=%s' % (hostname,
                                    button_id,
                                    action)
        try:
            request = urllib2.urlopen(url, timeout=3)
        except:
            self.Dialog.ok(sys.modules['__main__'].__scriptname__,
                           'Webserver nicht erreichbar')
Barabbas
User
Beiträge: 349
Registriert: Dienstag 4. März 2008, 14:47

Entferne doch erstmal diesen sehr allgemein gehaltenen try-except-Block. Dann zeigt dir Python zumindest deutlich, was schief läuft. Ohne eine genaue Fehlermeldung kann es ja alles mögliche sein? Vielleicht hast du vergessen urllib2 zu importieren? Vielleicht ist die IP gar nicht erreichbar?

Darum: Niemals einfach nur "try... except...": Immer die abzufangenden Exceptions explizit angeben.

Schönen Gruß,

brb
Rocco
User
Beiträge: 5
Registriert: Freitag 8. April 2011, 17:01

Barabbas hat geschrieben:Entferne doch erstmal diesen sehr allgemein gehaltenen try-except-Block. Dann zeigt dir Python zumindest deutlich, was schief läuft. Ohne eine genaue Fehlermeldung kann es ja alles mögliche sein? Vielleicht hast du vergessen urllib2 zu importieren? Vielleicht ist die IP gar nicht erreichbar?

Darum: Niemals einfach nur "try... except...": Immer die abzufangenden Exceptions explizit angeben.

Schönen Gruß,

brb

@Barabbas danke für den Ttipp,

hätte evt erwähnen sollen das die Ip Adresse sich per Browser abrufen lässt , ich benutze die Funktion aus einem Media Center "XBMC". von dort aus werden alle fehler in einem LoG File gespeichert.

Die urllib2 wurde importiert und wird auch akzeptiert von Script. Als debugger benutze ich nur die logfile vom XBMC , das debuggen über die IDLE scheitert da es die spezifischen Bibliotehken des Mediacenters nicht beinhaltet und ich als Einsteiger nicht die nötigen Kentnisse besitze.

evt könntest du mir eine StepbyStep hilfe geben ?

Gruß
deets

Der Tipp bleibt derselbe - lass das try/except weg. So wie du das da gemacht hast, endet *nichts* im logfile - ein logfile faengt nicht magisch alle Fehler im Programm auf.

Und dann schau dir an, was *wirklich* schiefgeht, und poste das ggf. hier.
Rocco
User
Beiträge: 5
Registriert: Freitag 8. April 2011, 17:01

Sorry mit dem Debugger habe ich noch nie gearbeitet :K

Ich poste mal das Script hierher:http://www.file-upload.net/download-3536961/gui.py.html
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hier hat keiner, außer dir, etwas von einem Debugger gesagt. Du sollst einfach nur das try-except aus deinem Code entfernen, damit die Fehlermeldung nicht verschluckt wird und du sehen kannst, was schief geht. Das Forum hat übrigens auch Code-Tags spezielle für Python. Wenn du größere Quelltexte zeigen willst, dann benutze am besten eine Paste Bin (oben ist sogar eins verlinkt) und keine File-Hoster.

Sebastian
Das Leben ist wie ein Tennisball.
Rocco
User
Beiträge: 5
Registriert: Freitag 8. April 2011, 17:01

EyDu hat geschrieben: ....damit die Fehlermeldung nicht verschluckt wird und du sehen kannst, was schief geht. Das Forum hat übrigens auch Code-Tags spezielle für Python. .
wo sollte denn diese Fehlermeldung sichtbar sein ?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Im Traceback welchen du erhältst.
Das Leben ist wie ein Tennisball.
deets

Rocco hat geschrieben: wo sollte denn diese Fehlermeldung sichtbar sein ?
Du hast doch selbst behauptet, da gaeb's ein logfile, in dem alles steht.
Rocco
User
Beiträge: 5
Registriert: Freitag 8. April 2011, 17:01

deets hat geschrieben:
Rocco hat geschrieben: wo sollte denn diese Fehlermeldung sichtbar sein ?
Du hast doch selbst behauptet, da gaeb's ein logfile, in dem alles steht.
HI


ich denke aus den Logfile wirst du eher wenig interne sachen zur Syntax von Script bekommen.
Die Fehlermeldungen werden doch schon eher durch den Debugger klarer .

Siehe XBMC Log:

Code: Alles auswählen

1:03:27 T:4752 M:2101583872  NOTICE: -->Python Interpreter Initialized<--
21:03:27 T:4752 M:2101583872  NOTICE: [SCRIPT][Play Webcam] version 0.0.2 initialized!
21:03:34 T:4752 M:2099142656  NOTICE: [SCRIPT][Play Webcam] version 0.0.2 exited!
21:03:34 T:2960 M:2099187712   ERROR: CLocalizeStrings::ClearBlock: Trying to clear non existent block C:\Users\Siggi\AppData\Roaming\XBMC\addons\script.playcam
21:03:36 T:2960 M:2099478528  NOTICE: Storing total System Uptime
21:03:36 T:2960 M:2099478528  NOTICE: Saving settings
21:03:36 T:2960 M:2099384320  NOTICE: stop all
21:03:36 T:2960 M:2099384320  NOTICE: ES: Stopping event server
21:03:36 T:2960 M:2099384320  NOTICE: Webserver: Stopping...
21:03:36 T:2960 M:2099384320  NOTICE: WebServer: Stopped the webserver
21:03:36 T:2960 M:2099384320  NOTICE: Webserver: Stopped...
21:03:37 T:2244 M:2100342784  NOTICE: ES: UDP Event server stopped
21:03:37 T:2960 M:2100342784  NOTICE: stop sap announcement listener
21:03:37 T:2960 M:2100342784  NOTICE: clean cached files!
21:03:37 T:2960 M:2100342784  NOTICE: unload skin
21:03:37 T:2960 M:2100367360  NOTICE: stop python
21:03:37 T:2960 M:2109120512  NOTICE: stopped
21:03:37 T:2960 M:2109218816  NOTICE: destroy
21:03:37 T:2960 M:2109370368  NOTICE: unload sections
deets

Du redest immer von einem Debugger. Was denn fuer ein Debugger? Und *hast* du jetzt mal das try/except rausgenommen, ja, oder nein?
Antworten