Action #1406
GVOClient should not open always a new socket when sending stuff
| Status: | Rejected | Start date: | 01/12/2015 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assigned To: | % Done: | 0% | ||
| Category: | - | |||
| Target version: | 1.0.0 | |||
| Duration: |
Description
Using the TOPCAT Hub, it appears that the connection always gets closed when an XML-RPC exchange has been done. This seems to be part of the XML-RPC protocol, see for example http://www.tutorialspoint.com/xml-rpc/xml_rpc_response.htm:
After the response is delivered from the XML-RPC server to the XML-RPC client, the connection is closed. Follow-up requests need to be sent as separate XML-RPC connections.
Note that typical XML-RPC response has the following format:
HTTP/1.1 200 OK
Date: Sat, 06 Oct 2001 23:20:04 GMT
Server: Apache.1.3.12 (Unix)
Connection: close
Content-Type: text/xml
Content-Length: 124
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><double>18.24668429131</double></value>
</param>
</params>
</methodResponse>
The response obviously says:
Connection: close
Recurrence
No recurrence.
History
#1
Updated by Knödlseder Jürgen almost 12 years ago
- http://xmlrpc.scripting.com/spec.html
- http://www.tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-intro.html
- http://xmlrpcpp.sourceforge.net/faq.html (C++ XML-RPC library)
And here a summary of the XML-RPC definition:
An XML-RPC message is an HTTP-POST request. The body of the request is in XML. A procedure executes on the server and the value it returns is also formatted in XML. Procedure parameters can be scalars, numbers, strings, dates, etc.; and can also be complex record and list structures.
The payload is in XML, a single <methodCall> structure. The <methodCall> must contain a <methodName> sub-item, a string, containing the name of the method to be called. If the procedure call has parameters, the <methodCall> must contain a <params> sub-item.
Unless there’s a lower-level error, always return 200 OK.
The body of the response is a single XML structure, a <methodResponse>, which can contain a single <params> which contains a single <param> which contains a single <value>.
The <methodResponse> could also contain a <fault> which contains a <value> which is a <struct> containing two elements, one named <faultCode>, an <int> and one named <faultString>, a <string>.
#2
Updated by Knödlseder Jürgen over 11 years ago
- Status changed from New to Rejected
- Remaining (hours) set to 0.0
Rejected as opening always a new socket is part of the XML-RPC protocol.