geopython / MetaSearch

*** We have moved! MetaSearch is now a core QGIS plugin! (2014-11-30). See QGIS repository
https://hub.qgis.org/wiki/quantum-gis/MetaSearch
Other
4 stars 12 forks source link

Records not loaded: Bad Request #56

Closed jachym closed 10 years ago

jachym commented 10 years ago

Hi,

I try to connect and "getrecords" from this service

http://geoportal.cuzk.cz/SDIProCSW/service.svc/get?REQUEST=GetCapabilities&SERVICE=CSW

I get the service connected, but when I try to "search" with no constrains, I get

Connection error: HTTP Error 400: Bad Request

Only thing, which seems strange is (in the capabilities document) that the URLs for POST and GET request types are different.

Any hint, how to test it? Any hint, what else could this be?

tomkralidis commented 10 years ago

@jachym thanks for the info. The problem is that MetaSearch's underlying CSW support (OWSLib) is using http://geoportal.cuzk.cz/SDIProCSW/service.svc/get as the URL to construct the (HTTP POST) GetRecords requests.

If I inspect the CSW's Capabilities XML, GetRecords POST requests (as advertised) are supposed to be invoked against a different URL (http://geoportal.cuzk.cz/SDIProCSW/Service.svc/post). So it is not surprising to see this failing.

Although this is perfectly legal for CSW/OWS standards, OWSLib's implementation of this has historically covered by ~80% use case that the GetCapabilities URL is the single URL used for all types of CSW requests. This issue was also articulated in https://github.com/geopython/OWSLib/issues/154.

This has since been fixed in https://github.com/kwilcox/OWSLib/commit/a14c4020301ba91fd029c976911cfbfe0aec28c8#diff-3, and is available in OWSLib 0.8.8.

I have bumped OWSLib to 0.8.8 in MetaSearch. @jachym can you test with OWSLib 0.8.8? Please reopen this ticket if this does not fix the issue.

This will be available in the MetaSearch 0.3.0 release.