View Source Tesla.Middleware.XMLRPC (Tesla.Middleware.XMLRPC v0.7.0)
Encode requests and decode responses as XML-RPC.
examples
Examples
defmodule FooClient do
@api_url Application.compile_env(:foo_client, :api_url, "http://localhost:8080/")
use Tesla
plug Tesla.Middleware.BaseUrl, @api_url
plug Tesla.Middleware.XMLRPC
def call(method_name, params, opts \ []) do
body = %XMLRPC.MethodCall{method_name: method_name, params: params}
case post("/RPC2", body, opts) do
{:ok, %{status: 200, body: %XMLRPC.MethodResponse{param: result}}} ->
{:ok, result}
{:ok, %{status: 200, body: %XMLRPC.Fault{fault_code: code, fault_string: reason}}} ->
{:error, {:fault, code, reason}}
{:ok, response} ->
{:error, {:unexpected_response, response}}
{:error, _reason} = error ->
error
end
end
end
options
Options
:xmlrpc_opts
- options passed to the XMLRPC encoder and decoder