2014-11-12 4 views
0

Я пытаюсь выяснить, как выполнить простую операцию 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?

ответ

1

На самом деле, я обнаружил, что мне не нужно, что материал заголовка, так что это простая версия работает также:

url = 'http://www.ngdc.noaa.gov/geoportal/csw'; 
paramString=fileread('post_query.xml'); 
[output,extras] = urlread2(url,'POST',paramString); 

Я думаю, что это становится довольно просто, на самом деле!

Смежные вопросы