Ich würde gerne an eine REST Resource (Adresse: http://192.168.1.4/ws/restResourcenName) Daten übermitteln. Dabei muss man sich vorher authentifizieren. Irgendwie will das nicht so richtig klappen obwohl ich per GET schon die Ressource abfragen kann. Hier mein Code:
Code: Alles auswählen
from urllib.request import Request, urlopen
from pprint import pprint
import http.client, urllib.parse
# create a password manager
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
# Add the username and password.
username = 'user'
password = 'pass'
# If we knew the realm, we could use it instead of None.
top_level_url = 'http://192.168.1.4/ws'
password_mgr.add_password(None, top_level_url, username, password)
handler = urllib.request.HTTPBasicAuthHandler(password_mgr)
# create "opener" (OpenerDirector instance)
opener = urllib.request.build_opener(handler)
# Install the opener.
# Now all calls to urllib.request.urlopen use our opener.
urllib.request.install_opener(opener)
url = 'http://192.168.1.4/ws'
resource = 'restResourcenName'
value = '''Zu
übermittlender
Text'''
values = { resource : value }
response = urllib.request.urlopen(url+resource,value)
the_page = response.read()
print (the_page)
Mit einem zuvor programmierten Perl Skript geht es einwandfrei also kann der String (value) an sich nicht falsch sein.
Mache ich da irgendwas bei der Übergabe an urlopen falsch?
Gruß,
shor