---
name: "xmlrpc"
section: "1"
platform: "linux"
package: "libxmlrpc-core-c3-dev"
version: "1.59.03-10"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xmlrpc"
---

# xmlrpc(1)

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

## 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)](/curl/1.md), 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.**
