Beschreibung der Schnittstelle
Die XML-Schnittstelle der handelsauskunft.com setzt auf den offenen Standard XML-PRC. Wir möchten für Sie die Anbindung an unsere Schnittstelle so einfach wie möglich gestalten. Dazu sind wir auch auf Ihre Hilfe angewiesen. Sollten Sie Programmierungen in anderen Scriptsprachen außer Perl und PHP vorgenommen haben, so würden wir gerne diese Quelltext-Beispiele unter Verwendung der Quelle veröffentlichen.
Inhaltsverzeichnis
- Was ist XML-RPC?
- Programmierbeispiele unter Perl
- Ein Quelltextbeispiel unter Perl
- Programmierbeispiele unter PHP
- Ein Quelltextbeispiel unter PHP
Was ist XML-RPC?
Die XML-Schnittstelle verwendet den offenen Standard XML-RPC (http://www.xmlrpc.com/).
XML-RPC: Extensible Markup Language Remote Procedure Call - ist eine Definition zum Methodenaufruf (oder auch Funktionsaufruf) durch verteilte (also durch ein Netzwerk verbundene) Systeme.
Bei der Spezifikation von XML-RPC wurde darauf Wert gelegt, dass eine Implementierung ohne großen Aufwand in unterschiedlichen Programmiersprachen und auf unterschiedlichen Systemplattformen möglich ist.
Auch aus diesem Grund wurden zur Realisierung zwei Standards miteinander verbunden: Für den Transport der Daten wurde auf das Hypertext Transfer Protocol HTTP) zurückgegriffen, während die Darstellung der übertragenen Daten in der Extensible Markup Language (XML) geschieht.
Historisch gesehen stellt XML-RPC den Vorgänger zu SOAP dar, ist im Gegensatz zu diesem jedoch wesentlich schlanker und schneller zu verstehen.
Die Anfragen müssen in UTF-8 erfolgen, der Server antwortet stets in UTF-8 und ist in der Regel 24 Stunden an 7 Tagen der Woche über die Internet-Adresse:
https://xml.handelsauskunft.com/
erreichbar.
Für die Nutzung der XML-Schnittstelle sind Zugangsdaten notwendig, die grundsätzlich erst nach dem Abschluß eines Rahmenvertrages erteilt werden.
Programmierbeispiele unter Perl
Perl ist eine freie, plattformunabhängige und interpretierte Programmiersprache ("Skriptsprache"), die mehrere Programmierparadigmen unterstützt.
Für das Programmierbeispiel sind Programm-Bibliotheken notwendig. Entsprechende Module können aus dem CPAN
heruntergeladen werden.
CPAN (engl. Comprehensive Perl Archive Network) ist ein weltweit gespiegeltes Online-Repository für Perl-Module, -Anwendungen und Dokumentationen. Es bietet die Möglichkeit einer komfortablen Installation und Verwaltung von Perl-Modulen. Heute umfasst das CPAN circa 270 Server auf allen fünf Kontinenten und enthält über 11.400 Module von über 5.700 Autoren.
Über eine Kommandozeile kann man ein Tool zum automatischen Downloaden starten. Geben Sie dazu einfach: cpan ein.
Anschließend sind folgende Module mit dem Befehl: install [Modulname] zu installieren:
Ein Quelltextbeispiel unter Perl
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dump qw(dump);
use Encode qw(encode_utf8);
use RPC::XML;
use RPC::XML::Client;
$RPC::XML::ENCODING = 'utf-8';
my $userid = 123456;
my $passwort = '*******';
my $kunden_duns = 330834743;
my $aktenzeichen = 'Testanfrage'
my $interesse = 'ABK';
my $land = 'DE';
my $bundesland = '';
my $firma = 'Frankfurter Maschinenbau AG';
my $strasse = 'Darmstädter Landstr.'
my $plz = 60598;
my $ort = 'Frankfurt';
my $telefon = '';
my $testmodus = 0; # 1 fuer Testmodus
my $xml_url = 'https://xml.handelsauskunft.com/';
my $anfrage = 'XML.ListDuns';
my $daten = {SIGNON => {USER_ID => $userid,
PASSWORD => $passwort,
CUSTOMER_DUNS => $kunden_duns,
},
REQUEST => {CLIENT_REF => $aktenzeichen,
VERSION => '0.1',
REASON => $interesse,
TEST => $testmodus,
CTRY_CD => $land,
PRIM_GEO_AREA => $bundesland,
PRIM_NME => $firma,
ADR_LINE => $strasse,
POST_CODE => $plz,
POST_TOWN => $ort,
TLCM_NBR => $telefon,
},
};
my $rpc = RPC::XML::Client->new($xml_url);
my $req = RPC::XML::request->new($anfrage, $daten);
my $res = $rpc->send_request($req);
if (ref($res)) {
if ($res->is_fault) {
print dump($res->value);
} else {
print dump($res->value);
}
} else {
print "RPC-Fehler: $res\n";
}
Programmierbeispiele unter PHP
PHP ist eine Skriptsprache mit einer an C bzw. C++ angelehnten Syntax, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird.
Für nachfolgendes Beispiel ist eine Programm-Bibliotheken XML-RPC for PHP: http://phpxmlrpc.sourceforge.net/ getestet mit Version 2.2 vom 25.02.2007 notwendig.
Das Archiv kann in ein beliebiges Verzeichnis entpackt werden und wird mittels
ini_set('include_path', 'xmlrpc-2.2/lib');
require_once('xmlrpc.inc');
in PHP eingebunden. Das Verzeichnis muß entsprechend angepaßt werden. Auf obiger Webseite ist auch die Dokumentation für das Modul zu finden.
Ein Quelltextbeispiel unter PHP
<php
ini_set('include_path', 'xmlrpc-2.2.1/lib');
require_once('xmlrpc.inc');
$userid = 123456;
$passwort = '*******';
$kunden_duns = 330834743;
$aktenzeichen = 'Testanfrage';
$interesse = 'ABK';
$land = 'DE';
$bundesland = '';
$firma = 'Frankfurter Maschinenbau AG';
$strasse = 'Darmstaedter Landstr.';
$plz = 60598;
$ort = 'Frankfurt';
$telefon = '';
$testmodus = 0;
$rpc = new xmlrpc_client('/', 'xml.handelsauskunft.com', 443);
$rpc->setSSLVerifyPeer('');
$req = new xmlrpcmsg('XML.ListDuns',
array(new xmlrpcval(
array(
'SIGNON' => new xmlrpcval(
array(
'USER_ID' => new xmlrpcval($userid, 'int' ),
'PASSWORD' => new xmlrpcval($passwort, 'string' ),
'CUSTOMER_DUNS' => new xmlrpcval($kunden_duns, 'int' ),
), 'struct'),
'REQUEST' => new xmlrpcval(
array(
'CLIENT_REF' => new xmlrpcval($aktenzeichen, 'string' ),
'VERSION' => new xmlrpcval('0.1', 'string' ),
'REASON' => new xmlrpcval($interesse, 'string' ),
'TEST' => new xmlrpcval($testmodus, 'boolean'),
'CTRY_CD' => new xmlrpcval($land, 'string' ),
'PRIM_GEO_AREA' => new xmlrpcval($bundesland, 'string' ),
'PRIM_NME' => new xmlrpcval($firma, 'string' ),
'ADR_LINE' => new xmlrpcval($strasse, 'string' ),
'POST_CODE' => new xmlrpcval($plz, 'string' ),
'POST_TOWN' => new xmlrpcval($ort, 'string' ),
'TLCM_NBR' => new xmlrpcval($telefon, 'string' ),
), 'struct'),
), 'struct'),
)
);
$res = $rpc->send($req, 60, 'https', 'utf-8');
if (!$res->faultCode()) {
# Aufruf erfolgreich
$val = $res->value();
print_r ($val->scalarval());
} else {
# Fehler
print "Fault\n";
print "Code: " . $res->faultCode() . "\n";
print "Reason: '" . $res->faultString() . "\n";
}
?>
-
-
- Seite 1 von 13
- XML.ListDuns
-
-