urllib(2).urlopen Problem

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
-dbv-
User
Beiträge: 2
Registriert: Dienstag 18. Januar 2011, 10:58

Hallo Gemeinde,

ich hab da mal ein kleines Problem.

ich möchte folgenden Link per urlopen aufrufen

Code: Alles auswählen

https://domain.tl/sms/sendsms.asp?receiver=+49123456789&sender=Absender&msg=Das ist ein Test&id=username&pw=passmsgtype=t
Ich erhalte bei urllib: You may nor use this method
bei urllib2: HTTP Error 501: Not Implemented

anbei noch der Beispielcode:

Code: Alles auswählen

a = "https://domain.tl/sms/sendsms.asp?receiver=+49123456789&sender=Absender&msg=[b]Das ist ein Test[/b]&id=username&pw=passmsgtype=t"
b = urllib.urlopen(a)

Wenn ich diesen Link aber im Browser öffne erhalte ich ein "OK" vom Webserver und die SMS wird versandt.
Wenn ich den Link so abändere das aus "Das ist ein Test" --> "DasisteinTest" wird, funktioniert es tadellos.

Bin grad ein bischen ratlos, er soll einfach nur den Link, der dynamisch generiert wird, aufrufen.
Jemand ne Idee?

Edit: Ich hab den Link jetzt mal über webbrowser module gejagt, funzt wunderbar, ich kann auch anschliessend den Browser wieder schliessen. Aber das kann doch nicht Sinn der Sache sein.

BR
-dbv-
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

-dbv- hat geschrieben:

Code: Alles auswählen

https://domain.tl/sms/sendsms.asp?receiver=+49123456789&sender=Absender&msg=Das ist ein Test&id=username&pw=passmsgtype=t
Ich habe es jetzt nicht ausprobiert, aber Leerzeichen in den Werten sind nicht schön. Was passiert denn, wenn du sie korrekt als %20 maskierst?
BlackJack

@-dbv-: Das ist keine gültige URL -- da sind Leerzeichen enthalten und das '+' bei der Telefonnummer sollte ja wahrscheinlich tatsächlich ein '+' und kein Leerzeichen sein. Vielleicht solltest Du den Query-Teil nicht "von Hand" einbauen, sondern ihn Dir von `urllib.urlencode()` korrekt zusammen bauen und escapen lassen.

Der Mittelteil müsste jedenfalls so aussehen: '...?receiver=%2B49123456789&sender=Absender&msg=Das+ist+ein+Test&...'
-dbv-
User
Beiträge: 2
Registriert: Dienstag 18. Januar 2011, 10:58

Da hätte ich auch selbst drauf können (das der Browser die Leerzeichen alleine maskiert). Aber wie das nunmal so ist mit Bäumen und Wäldern.
Antworten