OWSLib icon indicating copy to clipboard operation
OWSLib copied to clipboard

[WFS 2.0.0] Feature request using "POST" fails

Open digital-idiot opened this issue 2 years ago • 0 comments

  • Version: OWSLib = '0.25.0'

My getfeature query:

response = wfs2.getfeature(
    typename=name, 
    filter=filter_query,
    propertyname=['geom', 'ID'],
    method='GET',
    outputFormat='json'
)

With method='GET' it works fine but when method='POST' is passed the following error occurs:

Traceback (most recent call last):
  File "<src_path>", line 37, in <module>
    response = ahn_wfs.getfeature(
  File "<env_path>/site-packages/owslib/feature/wfs200.py", line 310, in getfeature
    url, data = self.getPOSTGetFeatureRequest(
  File "<env_path>/site-packages/owslib/feature/__init__.py", line 352, in getPOSTGetFeatureRequest
    request.set_filter(filter)
  File "<env_path>/site-packages/owslib/feature/postrequest.py", line 182, in set_filter
    self._query.append(sub_elem)
TypeError: append() argument must be xml.etree.ElementTree.Element, not None

Reproducible example:

from owslib.etree import etree
from owslib.fes2 import PropertyIsEqualTo
from owslib.wfs import WebFeatureService

wfs2 = WebFeatureService(
    url="https://geodata.nationaalgeoregister.nl/ahn3/wfs?request=GetCapabilities",
    version="2.0.0"
)
filter_query = PropertyIsEqualTo(propertyname='has_data_laz', literal="true")
filter_query = etree.tostring(filter_query.toXML()).decode("utf-8")

response = wfs2.getfeature(
    typename='ahn3:ahn3_bladindex', 
    filter=filter_query,
    method='POST',
    outputFormat='json'
)

digital-idiot avatar Mar 30 '22 11:03 digital-idiot