Я пытаюсь выяснить, как выполнить простую операцию POST для службы OGC CSW (Catalog Service for the Web) с использованием блога XML в Matlab. Я читал документацию для Mathworks urlread
и 3-й партии urlread2
, и я пытаюсь повторить этот простой пример:Отправка запроса POST XML от Matlab
wget http://www.ngdc.noaa.gov/geoportal/csw --post-file=./post_query.xml
где post_query.xml
является:
<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="11" outputSchema="http://www.isotc211.org/2005/gmd"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" >
<csw:ElementSetName>full</csw:ElementSetName>
<csw:Constraint version="1.1.0">
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>apiso:modified</ogc:PropertyName> <ogc:Literal>2014-09-30</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>apiso:modified</ogc:PropertyName> <ogc:Literal>2014-10-02</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:And>
</ogc:Filter>
</csw:Constraint>
</csw:Query>
</csw:GetRecords>
Я попробовал много вещей, но единственное, что я был в состоянии добраться до работы urlread2
так:
url = 'http://www.ngdc.noaa.gov/geoportal/csw'
paramString=fileread('post_query.xml')
header.name='Content-Type';
header.value='application/x-www-form-urlencoded';
[output,extras] = urlread2(url,'POST',paramString,header);
Есть ли лучший способ решить эту проблему?
Есть ли способ сделать это, используя urlread
или какой-либо другой инструмент в стандартном распределении Matlab?