public GetFeatureInfoResponse getFeatureInfo( GetFeatureInfo request ) throws OWSExceptionReport, XMLStreamException, IOException { Map<String, String> kvp = buildGetFeatureInfoKvpMap( request ); if ( request.getOverriddenParameters() != null ) { for ( Entry<String, String> e : request.getOverriddenParameters().entrySet() ) { if ( kvp.containsKey( e.getKey().toLowerCase() ) ) { kvp.put( e.getKey().toLowerCase(), e.getValue() ); } else kvp.put( e.getKey(), e.getValue() ); } } URL endPoint = getGetUrl( WMTSConstants.WMTSRequestType.GetTile.name() ); OwsHttpResponse response = httpClient.doGet( endPoint, kvp, null ); response.assertHttpStatus200(); response.assertNoXmlContentTypeAndExceptionReport(); return new GetFeatureInfoResponse( response, request ); }
public GetRecordsResponse getRecords( GetRecords getRecords ) throws IOException, XMLProcessingException, OWSExceptionReport, XMLStreamException { URL endPoint = getXMLPostUrl(); StreamBufferStore request = new StreamBufferStore(); try { XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter( request ); GetRecordsXMLEncoder.export( getRecords, xmlWriter ); xmlWriter.close(); request.close(); } catch ( Throwable t ) { throw new RuntimeException( "Error creating XML request: " + getRecords, t ); } OwsHttpResponse response = httpClient.doPost( endPoint, "text/xml", request, null ); return new GetRecordsResponse( response ); }
/** * Performs the given {@link GetTile} request. * * @param request * <code>GetTile</code> requests, must not be <code>null</code> * @return server response, never <code>null</code> * @throws IOException * @throws OWSExceptionReport * @throws XMLStreamException */ public GetTileResponse getTile( GetTile request ) throws IOException, OWSExceptionReport, XMLStreamException { Map<String, String> kvp = buildGetTileKvpMap( request ); if ( request.getOverriddenParameters() != null ) { for ( Entry<String, String> e : request.getOverriddenParameters().entrySet() ) { if ( kvp.containsKey( e.getKey().toLowerCase() ) ) { kvp.put( e.getKey().toLowerCase(), e.getValue() ); } else kvp.put( e.getKey(), e.getValue() ); } } URL endPoint = getGetUrl( WMTSConstants.WMTSRequestType.GetTile.name() ); OwsHttpResponse response = httpClient.doGet( endPoint, kvp, null ); response.assertHttpStatus200(); response.assertNoXmlContentTypeAndExceptionReport(); return new GetTileResponse( response ); }
public TransactionResponse insert( List<OMElement> records ) throws IOException, XMLProcessingException, OWSExceptionReport, XMLStreamException { ckeckOperationSupported( Transaction.name() ); URL endPoint = getPostUrl( Transaction.name() ); StreamBufferStore request = new StreamBufferStore(); try { XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter( request ); TransactionXMLEncoder.exportInsert( records, xmlWriter ); xmlWriter.close(); request.close(); } catch ( Throwable t ) { throw new RuntimeException( "Error insering " + records.size() + " records", t ); } OwsHttpResponse response = httpClient.doPost( endPoint, "text/xml", request, null ); return new TransactionResponse( response ); }
OwsHttpResponse response = httpClient.doGet( endPoint, kvp, null );
/** * Performs the given {@link GetFeature} request. * * @return WFS response, never <code>null</code> * @throws OWSExceptionReport * if the server responded with a service exception report * @throws XMLStreamException * @throws IOException */ public GetFeatureResponse<Feature> doGetFeature( GetFeature request ) throws OWSExceptionReport, XMLStreamException, IOException { URL endPoint = getPostUrl( GetFeature.name() ); StreamBufferStore requestSink = new StreamBufferStore(); try { XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter( requestSink ); // TODO handle other WFS versions GetFeature110XMLEncoder.export( request, null, xmlWriter ); xmlWriter.close(); requestSink.close(); } catch ( Throwable t ) { throw new RuntimeException( "Error creating XML request: " + request ); } OwsHttpResponse response = httpClient.doPost( endPoint, "text/xml", requestSink, null ); GMLVersion gmlVersion = getAppSchema().getGMLSchema().getVersion(); return new GetFeatureResponse<Feature>( response, getAppSchema(), gmlVersion ); }
public MetadataRecord getRecordById( String fileIdentifier, String schema ) throws IOException, OWSExceptionReport, XMLStreamException { URL endPoint = getGetUrl( "GetRecordById" ); Map<String, String> params = getGetRecordByIdKvpParams( fileIdentifier, schema ); OwsHttpResponse response = httpClient.doGet( endPoint, params, null ); XMLStreamReader xmlStream = response.getAsXMLStream(); XMLStreamUtils.skipStartDocument( xmlStream ); moveToNextStartElement( xmlStream ); return MetadataRecordFactory.create( xmlStream ); }
kvp.put( "request", "DescribeFeatureType" ); OwsHttpResponse response = httpClient.doGet( endPoint, kvp, null ); XMLStreamReader xmlStream = null; StreamBufferStore tmpStore = null;
private void initCapabilities( URL capaUrl ) throws IOException, OWSExceptionReport, XMLStreamException { if ( shouldUseGet( capaUrl ) ) { OwsHttpResponse response = httpClient.doGet( capaUrl, null, null ); response.assertHttpStatus200(); XMLStreamReader responseAsXMLStream = response.getAsXMLStream(); try { XMLAdapter xmlAdapter = new XMLAdapter( responseAsXMLStream ); initCapabilities( xmlAdapter ); } finally { responseAsXMLStream.close(); response.close(); } } else { XMLAdapter xmlAdapter = new XMLAdapter( capaUrl ); initCapabilities( xmlAdapter ); } }
/** * Performs a <code>GetFeatureInfo</code> request and returns the response as a {@link FeatureCollection}. * * @param request * request parameter, must not be <code>null</code> * @param hardParams * raw parameters for augmenting overriding KVPs, must not be <code>null</code> * @return response parsed as feature collection, never <code>null</code> * @throws IOException * @throws OWSExceptionReport * @throws XMLStreamException */ public FeatureCollection doGetFeatureInfo( GetFeatureInfo request, Map<String, String> hardParams ) throws IOException, OWSExceptionReport, XMLStreamException { Map<String, String> params = buildGetFeatureInfoParamMap( request, hardParams ); overrideHardParams( params, hardParams ); OwsHttpResponse response = null; try { URL url = getGetUrl( GetFeatureInfo.name() ); response = httpClient.doGet( url, params, null ); response.assertHttpStatus200(); XMLStreamReader reader = response.getAsXMLStream(); String csvLayerNames = join( ",", request.getQueryLayers() ); return FeatureInfoParser.parseAsFeatureCollection( reader, csvLayerNames ); } finally { closeQuietly( response ); } }