An Angular (9+) service which provides XML-RPC communication methods.
This library was generated with Angular CLI version 11.2.6. Dependencies are requiring Angular 9, but this can probably be easily adapted to anything greater or equal to Angular 2.
This is actually a port from the AngularJS library Angular-Xmlrpc. NOTE: IE support has been dropped altogether.
npm install angular2-xmlrpc --save
First of all, add a dependency in your module:
import { XmlrpcModule } from 'angular2-xmlrpc'
@NgModule({
...
imports: [
...
XmlrpcModule
],
...
})
export class AppModule { }
You can use it in your application as any other service, and inject it in the constructor as usual.
import { XmlrpcService } from 'angular2-xmlrpc'
constructor(..., private xmlrpc:XmlrpcService, ...) {
}
There is only one main method to call an XML-RPC method. In order to pass parameters, you have to wrap them in an array:
const xmlrpcCall = this.xmlrpc.callMethod(
'http://localhost:8080/xmlrpc/endpoint',
'method-name',
['string-param-1', 1, {'obj-param-3': {val1: 1, val2: 'x'}}]
)
The XML response from the server is wrapped in an Observable
, and can be parsed to a JS object with the parseResponse
method:
xmlrpcCall.subscribe(data => console.log(this.xmlrpc.parseResponse(data)))
to set custom headers:
this.xmlrpc.setHeaders({
'Custom-Header-1': 'Value-1',
'Custom-Header-2': ['Value-2', 'Value-3', 'Value-4']
})
- Note: this method returns an instance of HttpHeaders that will be used in the Angular HTTP request
To build the project create an angular workspace (or use an existing one). For example:
ng new ng-workspace --create-application false
Create the library project:
ng generate library angular2-xmlrpc
fetch this repo from inside the project folder and buid it as library module from angular:
ng build angular2-xmlrpc
ng test angular2-xmlrpc