Laden...

XmlRpc Request & Response

Erstellt von dotnet_student vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.515 Views
D
dotnet_student Themenstarter:in
22 Beiträge seit 2011
vor 13 Jahren
XmlRpc Request & Response

Hallo zusammen,

ich bin neu hier, grade auf das Forum gestoßen, und habe ein großes Problem mit dem Verstehen von XmlRpc Server.

Unser Prof. hat uns eine Aufgabe mit einem RpcXml Server gestellt. Wir sollten einen Client schreiben, der angegebene Listen abarbeitet und dann in XML speichert.

Soweit ich es verstanden habe, so sende ich mit XmlRpcRequest eine Anfrage an den Server und erfrage nach Methoden, die ich dann mit dem XmlRpcResponse auslessen kann oder irre ich mich?
Da die Dokumentation ziemlich durftig ist, was XmlRpc & .NET angeht, weiß ich ehrlich gesagt nicht mehr weiter.
Kann mir jemand hier weiter helfen oder einen Crashkurs verpassen.

The 1 Mio Dollar Code!!

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Soweit ich es verstanden habe, so sende ich mit XmlRpcRequest eine Anfrage an den Server und erfrage nach Methoden, die ich dann mit dem XmlRpcResponse auslessen kann oder irre ich mich?

So ungefähr. Du sendest dem Server (in einem XML-Dokument verpackt) einen Methodennamen und die zugehörigen Parameter, der Server führt die Methode aus und schickt Dir deren Rückgabe zurück (wieder in XML verpackt).

Da die Dokumentation ziemlich durftig ist, was XmlRpc & .NET angeht

Das ist wohl richtig - ich denke XmlRPC wird vom Framework direkt nicht unterstützt, da läuft eher alles auf den (wesentlich komplizierteren) Nachfolger SOAP hinaus.

Um Deine Aufgabe zu lösen solltest Du Dich im System.Xml-Namespace umsehen (ich gehe davon aus,daß Ihr für die Aufgabe keine fremden Bibliotheken benutzen dürft).

Näheres über das Protokoll gibt's in der Wikipedia unter XML-RPC und in den dort unter Weblinks verlinkten Seiten.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

D
dotnet_student Themenstarter:in
22 Beiträge seit 2011
vor 13 Jahren

Sie haben nicht zufällig einen kleinen Beispiel-Code?

Hier ist ein Fragment aus meinem:

[CookComputing.XmlRpc.XmlRpcUrl("http://greenseeds.de:9000")]
public interface listMethods : IXmlRpcProxy
{
    [XmlRpcMethod]
    String listMethods();
}

public void TestResponse()
{
listProducts proxy = XmlRpcProxyGen.Create<listProducts>();
                
foreach (String method in proxy.SystemListMethods())
{
      XmlRpcResponse response = new XmlRpcResponse(method);
     var mem_2 = new MemoryStream();
      var ser_2 = new XmlRpcSerializer();
      ser_2.SerializeResponse(mem_2, response);

     CreateXMLDocument(mem_2);
}
}

The 1 Mio Dollar Code!!

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Sie haben nicht zufällig einen kleinen Beispiel-Code?

Das siezen kannst Du Dir sparen - ist im Forum nicht üblich
Tut mir leid, nein.
Aber ich habe mich wohl geirrt, was die Benutzung fremder Bibliotheken angeht, denn CookComputing.XmlRpc scheint ja eine solche zu sein. Leider kenne ich sie nicht, aber das Ding ist doch bestimmt irgendwo dokumentiert?

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

D
dotnet_student Themenstarter:in
22 Beiträge seit 2011
vor 13 Jahren

Der Code selber, also die Klassen & Methoden sind teilweise oder gar nicht dokumentiert.
X(

Ok, versuche mich weiter durch zu schlagen!

The 1 Mio Dollar Code!!

D
dotnet_student Themenstarter:in
22 Beiträge seit 2011
vor 13 Jahren

Fehler gefunden!

Wie immer waren es Schreibfehler, was eigentlich 90% aller Fehler ausmacht!

also die Abfrage funkt, jedoch muss man beim Interface statt String Object deklarieren, danach bekommt man XmlRpcStruct Objekte, die sowohl Values wie auch die dazu gehörigen Keys beinhalten.

Mit XmlRpcRequest kann man die Struktur und die Mehtoden ermitteln!

Aber eigentlich ist es praktisch...

The 1 Mio Dollar Code!!

Gelöschter Account
vor 13 Jahren

http://greenseas.de:9000

das koresspondendiert mit dem job posting von schnitzelmann.
bist du dir sicher das von deinem prof bekommen zu haben?