NAME
  xmlrpc - makes an XML-RPC remote procedure call and displays the response

SYNOPSIS
	xmlrpc url method parameters [-transport=transportname]
	                             [-username=username -password=passwd]
	                             [-curlinterface={interface|host}]
	                             [-curlnoverifypeer]
	                             [-curlnoverifyhost]

DESCRIPTION
 This program is used to execute Remote Procedure Calls (RPC) using a XML-RPC
 client. Its main purpose is debugging and learning since RPC are usually
 embedded in source code of other programs.

ARGUMENTS
 url  This is the URL of the XML-RPC server. As XML-RPC uses HTTP, this must
      be an HTTP url. However, if you don't specify a type ("http:") in the
      URL, xmlrpc assumes an "http://" prefix and a "/RPC2" suffix. RPC2 is
      the conventional file name for an XML-RPC responder.

 method  The name of the XML-RPC method you want to invoke.

 parameters  List of parameters for the RPC. xmlrpc turns each of these arguments
             into an XML-RPC parameter, in the order given. You may specify no
             parameters if you like.

  You specify the data type of the parameter with a prefix ending in a
  slash. Example: i/5. Here, the "i" signifies an integer data type. "5"
  is the value.

  xmlrpc is capable of only a subset of the possible XML-RPC types, as
  follows by prefix:

  i/ integer (<i4>) (32 bit).

  s/ string (<string>).

  h/ byte string (<base64>). Specify the value in hexadecimal.

  b/ boolean (<boolean>). Specify the value as "true" or "t" for
  true; "false" or "f" for false.

  d/ double (<double>) - i.e. real number.

  n/ nil (<nil>).

  I/ 64 bit integer (<i8>).

OPTIONS
 -transport=transportname  This selects the XML transport facility (e.g. libwww)
   that xmlrpc uses to perform the RPC. The name transportname is one that the
   Xmlrpc-c programming library recognizes. This is typically libwww, curl, and
   wininet. By default, xmlrpc lets the Xmlrpc-c library choose.

 -username=username

 -password=passwd  These two options, which must be used together, cause
   the client to authenticate itself to the server, if the server requires it,
   using HTTP Basic Authentication and the specified username and password.

 -curlinterface={interface|host}  This option gives the "interface" option
   for a Curl XML transport. The exact meaning of this option is up to the
   Curl library, and the best documentation for it is the manual for the 'curl'
   program that comes with the Curl library. But essentially, it chooses the
   local network interface through which to send the RPC. It causes the Curl
   library to perform a "bind" operation on the socket it uses for the
   communication. It can be the name of a network interface (e.g. on
   Linux, "eth1") or an IP address of the interface or a host name that
   resolves to the IP address of the interface. Unfortunately, you can't
   explicitly state which form you're specifying, so there's some ambiguity.
	Examples:
	  -interface=eth1
	  -interface=64.171.19.66
	  -interface=giraffe.giraffe-data.com
   This option causes xmlrpc to default to using the Curl XML transport. You
   may not specify any other transport.

 -curlnoverifypeer  This option gives the "no_ssl_verifypeer" option for the
   Curl XML transport, which is essentially the CURLOPT_SSL_VERIFYPEER option
   of the Curl library. See the curl_easy_setopt() man page for details on
   this, but essentially it means that the client does not authenticate the
   server's certificate of identity -- it just believes whatever the server
   says. You may want to use -curlnoverifyhost as well. Since you're not
   authenticating the server's identity, there's not much sense in checking
   it. This option causes xmlrpc to default to using the Curl XML transport.
   You may not specify any other transport.

 -curlnoverifyhost  This option gives the "no_ssl_verifyhost" option for
   the Curl XML transport, which is essentially the CURLOPT_SSL_VERIFYHOST
   option of the Curl library. See the curl_easy_setopt() man page for
   details on this, but essentially it means that the client does not
   verify the server's identity. It just assumes that if the server answers
   the IP address of the server as indicated by the URL (probably via host
   name), then it's the intended server. You may want to use -curlnoverifypeer
   as well. As long as you don't care who the server says it is, there's no
   point in authenticating its identity. This option causes xmlrpc to default
   to using the Curl XML transport. You may not specify any other transport.

EXAMPLES
	$ xmlrpc http://localhost:8080/RPC2 sample.add i/3 i/5

	Result:
	 Integer: 8

	$ xmlrpc localhost:8080 sample.add i/3 i/5

	Result:
	 Integer: 8

	$ xmlrpc http://xmlrpc.example.com/~bryanh \
	echostring "s/This is a string"

	Result:
	 String: This is a string

	$ xmlrpc http://xmlrpc.example.com/~bryanh \
	echostring "This is a string in shortcut syntax"

	Result:
	 String: This is a string in shortcut syntax

	$ xmlrpc http://xmlrpc.example.com sample.add i/3 i/5 \
	-transport=curl -curlinterface=eth1 -username=bryanh -password=passw0rd

	Result:
	 Integer: 8

LIMITATIONS
 If you run xmlrpc in an environment in which programs get their arguments
 encoded some way other than UTF-8, xmlrpc will generate garbage for the
 XML-RPC call and display garbage for the XML-RPC response. Typically, you
 control this aspect of the environment with a LANG environment variable.
 One safe value for LANG is "C".

SEE ALSO
 curl(1), http://xmlrpc-c.sourceforge.net/doc, http://xmlrpc.com

AUTHOR
 xmlrpc was written by Eric Kidd.

 This manual page was written by Bryan Henderson and adapted for Debian by
 Carlos Henrique Lima Melara.
