Frage

ich brauche XmlRpc in C ++ auf einer Windows-Plattform zu verwenden. Trotz der Tatsache, dass meine Freunde mir versichern, dass XmlRpc ist eine „weithin verfügbar Standardtechnologie“, gibt es nicht viele Bibliotheken für sie zur Verfügung. In der Tat nur eine Bibliothek fand ich dies auf Windows zu tun, (plus ein anderes, das behauptet, „Sie tun müssen, um eine Menge Arbeit zu bekommen, dies zu kompilieren unter Windows). Die Bibliothek fand ich war Chris Morley‚XmlRpc ++‘. Allerdings ist es nicht die Unterstützung für SSL hat.

Meine Frage ist also: Welche Bibliothek sollte ich verwenden?

War es hilfreich?

Lösung

Ich habe meine eigene C ++ Bibliothek geschrieben. Es ist bei Sourceforge verfügbar: xmlrpcc4win

Der Grund, warum ich es geschrieben habe, anstatt Chris Morley mit war, dass:

  • Der Windows „wininet.lib“ Bibliothek bietet Ihnen alle Funktionen für Http-Anfragen Handling, also würde ich eher, dass verwenden. Als Ergebnis, ich brauchte nur 1700 LOC.
  • "wininet.lib", und deshalb meine Implementierung unterstützt HTTPS
  • Chris Morley Verwendung von STL-Container war ziemlich ineffizient (Chris, mir Mail, wenn Sie diese Zeilen lesen).

Andere Tipps

Bis ich meine eigene Bibliothek schrieb (siehe oben) hier meine Antwort war:

Derzeit ist die XmlRpc ++ Bibliothek von Chris Morley ist die einzige öffentliche Domain / LPGL XmlRpc Implementierung für C ++ auf Fenster.

Es gibt ein paar C ++ Implementierungen für Linux, von denen vermutlich leicht auf Windows portiert werden könnte, aber die Tatsache scheint zu sein, dass niemand noch so getan hat, und machte es öffentlich zugänglich. Auch, wie eczamy sagt: „Die XML-RPC-Spezifikation ist etwas einfach und es wäre nicht schwierig, Ihren eigenen XML-RPC-Client zu implementieren.“

Ich bin mit Chris Morley Bibliothek erfolgreich, trotz gehabt zu haben eine ganze Reihe von Bugs zu finden und zu beheben. Das Hilfe Forum für dieses Projekt scheint etwas zu sein, aktiv, aber niemand hat diese Fehler behoben und ein neues Release getan. Ich habe mit Chris Morley in Übereinstimmung gewesen, und er hat vage Hoffnungen eine neue Version zu tun, und er hat auf diese Frage Stackoverflow beigetragen (siehe unten / oben), und er behauptet, die meisten der Fehler behoben hat, aber bisher hat er nicht machte eine Version, die die viele Fehler behebt. Die letzte Veröffentlichung war im Jahr 2003.

Es ist enttäuschend für mich, dass eine breite Unterstützung soll (und einfach!) Protokoll, wie schlechte Unterstützung unter Windows + C ++ hat. Bitte kann mir jemand Lesen dieser Seite den Stab aufzunehmen und z.B. übernehmen XmlRpc ++ oder richtig Port einer der Linux-Implementierungen.

Es gibt Dutzende von Implementierungen des XML-RPC Implementierungen , einige in C ++ , aber die meisten in anderen Sprachen. Zum Beispiel neben XmlRpc ++ gibt es auch XML-RPC für C und C ++ . Hier ist ein HOWTO auf, wie die XML-RPC für können C und C ++ Bibliothek verwendet werden.

Die XML-RPC-Spezifikation ist etwas einfach und es wäre nicht schwierig, Ihren eigenen XML-RPC-Client zu implementieren. Ganz zu schweigen davon, wäre es auch möglich sein, eine bestehende XML-RPC-Implementierung in C zu nehmen und bringt in Ihr C ++ Projekt.

Die XML-RPC Homepage bietet auch eine Menge nützlicher Informationen.

Ich wollte nur ein paar Punkte beachten:

  • Die Quelle im CVS-Repository für XmlRpc ++ hat die Unterstützung für OpenSSL (obwohl ich es nicht versucht habe, wurde es von einem anderen Entwickler beigetragen).

  • Die meisten der gemeldeten Fehler in cvs fixiert sind; Ich habe keinen Zugriff auf einen Linux-Rechner im Moment, so habe ich keine offizielle Release.

  • gemacht
  • XmlRpc ++ ist nicht gemeinfrei. Es ist urheberrechtlich geschützt und lizenziert (LGPL).

Danke, Chris Morley

Ich konnte Tim Version von XML-RPC mit https und mit grundlegender Benutzername / Passwort-Authentifizierung arbeiten erhalten.

Für die Authentifizierung:

1) der Benutzername und das Passwort müssen die Internetconnect (...) Funktion übergeben werden

2) eine HTTP-Anfrage-Header "Authorization: Grund base64encoded (user: pass)" hinzugefügt werden muss vor dem Senden des Httpsendrequest (...) Befehl

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top