Webservice/XML Problem: Content is not allowed in prolog.
Verfasst: Freitag 24. Januar 2014, 17:20
Hallo liebe Forenbewohner!
Nach langer Zeit habe ich mal wieder ein Problem:
Ich möchte einen WFS (Geoserver) abfragen und das resultierende XML parsen. Dazu benutze ich folgendes momentan noch einfache Skript:
Die Abfrage funktioniert prinzipiell auch, ich bekomme, wenn ich das Request-Objekt verwende folgende Antwort:
Wenn ich den auskommentierten String verwende kommt das korrekte Capabilities-Dokument zurück. Auf den ersten Blick sieht der encodete data-string korrekt aus und entspricht den Parametern im String.
Ich kenn mich mit XML nicht so gut aus, deshalb frage ich mal hier wo der Fehler liegt, bzw. welche Header-Einstellungen vorzunehmen sind?
Für die Capability-Abfrage lässt sich das noch als String händeln, aber später kommen da noch längere Abfragen, da wär das nicht so toll.
Gruß Uwe
Nach langer Zeit habe ich mal wieder ein Problem:
Ich möchte einen WFS (Geoserver) abfragen und das resultierende XML parsen. Dazu benutze ich folgendes momentan noch einfache Skript:
Code: Alles auswählen
import urllib
import urllib2
base_url = u'http://bwastr-locator.wsv.bund.de/wfsfac/wfs'
version = u'1.1.0'
def _request(data):
'''
Evaluates the request and returns the xml document.
'''
#request = 'http://bwastr-locator.wsv.bund.de/wfsfac/wfs?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.1.0'
request = urllib2.Request(base_url, urllib.urlencode(data))
return urllib2.urlopen(request)
def capabilities(service='WMS'):
return _request({'REQUEST': 'GetCapabilities', 'SERVICE': service, 'VERSION':version})
if __name__ == '__main__':
while True:
keyin = raw_input('> ')
if keyin == 'c':
for line in capabilities().readlines():
print(line)
if keyin == 'q':
exit()
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport>
<ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc ../wfs/1.0.0/OGC-exception.xsd">
<ServiceException>
Query-Parameter kann nicht decodiert werden: Content is not allowed in prolog.
</ServiceException>
</ServiceExceptionReport
Ich kenn mich mit XML nicht so gut aus, deshalb frage ich mal hier wo der Fehler liegt, bzw. welche Header-Einstellungen vorzunehmen sind?
Für die Capability-Abfrage lässt sich das noch als String händeln, aber später kommen da noch längere Abfragen, da wär das nicht so toll.
Gruß Uwe