SendRequestToServer Method

Sends a request to a Distributed Generic Information Retrieval (DiGIR) server and returns the XML response.

Class:DiGIR
Intended use:Recommended for external callers
COM:Not exposed by a COM class
ArcGIS:Not exposed as an ArcGIS geoprocessing tool
Method type:Classmethod

Usage

response, httpobj = DiGIR.SendRequestToServer(url[, requestXML[, resource[, httpobj[, timeout[, maxRetryTime]]]]])

Arguments

url
Python type:unicode
Minimum length:1

URL of the DiGIR server to query.

requestXML
Python type:object or None
Default value:None

XML representing the request to send to the server.

To issue a DiGIR metadata request, omit this parameter. To send an inventory or search request, provide a string or Unicode string containing XML or an instance of lxml.etree._Element. The root element of the XML must be <inventory> or <search> from the http://digir.net/schema/protocol/2003/1.0 XML namespace, as defined in the DiGIR protocol schema, (available at http://www.digir.net/schema/protocol/2003/1.0/digir.xsd at the time of this writing).

resource
Python type:unicode or None
Default value:None
Minimum length:1

Name of the resource to query. For metadata requests, a resource does not need to be provided. For inventory and search requests, most DiGIR server implementations require the client to scope the request to a specific resource. If you omit this parameter and from an inventory or search request and receive an error, try providing it.

httpobj
Python type:GeoEco.httplib2.Http or None
Default value:None

Instance of GeoEco.httplib2.Http to be used to place HTTP requests. If not provided, a new one will be allocated.

Whether provided or newly allocated, the instance is returned. You can provide it back to subsequent calls of this function to cause the HTTP connection to the server to be reused.

timeout
Python type:int or None
Default value:None
Minimum value:1

Number of seconds to wait for the DiGIR server to respond before failing with a timeout error.

If you also provide a Maximum Retry Time and it is larger than the timeout value, the failed request will be retried automatically (with the same timout value) until it succeeds or the Maximum Retry Time has elapsed.

If you receive a timeout error you should investigate the server to determine if it is malfunctioning or just slow. Check the server's website to see if the operator has posted a notice about the problem, or contact the operator directly. If the server just slow, increase the timeout value to a larger number, to give the server more time to respond.

maxRetryTime
Python type:int or None
Default value:None
Minimum value:1

Number of seconds to retry requests to the DiGIR server before giving up.

Use this parameter to cope with a server that experiences transient failures. For example, some servers are rebooted as part of nightly maintenance cycles. If you start a long running operation and want it to run overnight without failing, set the maximum retry time to a duration that is longer than the time that the server is offline during the maintenance cycle.

To maximize performance while minimizing load during failure situations, retries are scheduled with progressive delays:

Returns

response
Python type:str

The XML response returned by the server.

httpobj
Python type:GeoEco.httplib2.Http

Instance of GeoEco.httplib2.Http that can be provided back to this method to reuse the HTTP connection.