XML-RPC Interface-Beschreibung

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 01.02.2011, 20:01

Hallo quickmic,

ich kann zu deinem Code nicht sehr viel sagen.
In VB.NET hatte ich auch erst das Problem, das sich mit einem HTTP-Post nichts getan hat.
Erst als ich einen HTTP-Post abgeschickt habe und sofort einen HTTP-Response gewartet habe,
hat es funktioniert.

Eventuell ist das bei Dir das gleiche Problem.


Bis dann

Martin

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 02.02.2011, 08:17

Hmm, ich habe die Response-Abfrage auskommentiert, da sonst ewig auf ne Antwort gewartet wurde. Werde das aber nochmal versuchen...
Problem ist, dass ich PHP nicht aus dem Effeff kann und daher mir weder sicher bin, ob der Code so passt (hab da ein Bsp aus dem Netz adaptiert), oder schon das XML Kommando nicht passt... Obwohl XML passen sollte.
Gibts vielleich ein Tool (hab keines gefunden) mit dem ich mich einfach auf die IP und Port der CCU verbinden kann, und beliebige XML-Kommandos schicken kann? Dann kann ich den Fehler eingrenzen.

mfg
quickmic

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 02.02.2011, 13:08

Hallo quickmic,

ich schreibe gerade eine sehr umfangreiche bebilderte Beschreibung zum Thema "XML-RPC" über VB.NET.
In diesem Zusammenhang habe ich mir so ein Tool selber programmiert. Ganz klein, ganz einfach.
Mit diesem Tool kann man die XML-Literale so zu sagen per Hand über HTTP versenden und sich die Antwort der CCU ansehen.

Diese Beschreibung ist noch in der "Mache". Ich könnte dir aber das Tool schon geben.

XML-RPC.jpg
Screenshot XML-RPC Tool
XML-RPC_2.jpg
Screenshot XML-RPC Tool mit XML-Literale
Bis dann

Martin

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 02.02.2011, 19:10

Super, so ein Tool ist zum Debuggen ausgezeichnet. Wäre dir dankbar, wenn du es mir zukommen lassen könntest.

mfg
quickmic

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 02.02.2011, 19:53

Hallo quickmic,

du brauchst aber NET-Framework 4.0!!!!


Bis dann

Martin


[EDIT] Programm muss überarbeitet werden [/EDIT]
Zuletzt geändert von Schablone am 02.02.2011, 23:22, insgesamt 1-mal geändert.

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 02.02.2011, 20:03

Vielen Dank... Framework 4.0 ist kein Problem....
Werde gleich mal testen :)

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 02.02.2011, 20:07

Hab mein Kommando geschickt. Klappt auf Anhieb. Jetzt weiss ich, dass mein PHP-Code einen Fehler hat.

Werde also weitersuchen...

Eins noch... Wenn man einen falschen Port bzw. IP einstellt, schmiert dein Tool ab. Das solltest du besser abfangen.

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 02.02.2011, 20:38

Und nochmal....

Hab den Fehler nun gefunden.....Der Code muss ca so auschauen:

Code: Alles auswählen

<html>
<head>
</head>


</body>
</html>

<?php
 
function PostToHost($host, $path, $referer, $data_to_send) {
  $fp = fsockopen("192.168.0.10", 2000);
  printf("Open!\n");
  fputs($fp, "POST $path HTTP/1.1\r\n");
  fputs($fp, "Host: $host\r\n");
  fputs($fp, "Referer: $referer\r\n");
  fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
  fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
  fputs($fp, "Connection: close\r\n\r\n");
  fputs($fp, $data_to_send);
  printf("Sent!\n");
  while(!feof($fp)) {
      $res .= fgets($fp, 128);
  }
  printf("Done!\n");
  fclose($fp);
 
  return $res;
}
 
$data = "pid=14&poll_vote_number=2";
 
printf("Go!\n");
$x = PostToHost(
              "www.linux.com",
              "/polls/index.phtml",
              "http://www.linux.com/polls/index.phtml?pid=14",
              $data
);




$request = '
<?xml version="1.0"?>
<methodCall>
	<methodName>setValue</methodName>
	<params>
		<param><value><string>HEQ0228540:3</string></value></param>
		<param><value><string>STATE</string></value></param>
		<param><value><boolean>0</boolean></value></param>
	</params>
</methodCall>
';

PostToHost("192.168.0.10", "", $referer, $request);

echo "fertig";
?> 

Das ist natürlich nur hingepfuscht, aber klappt prinzipiell. Wenn Ich den Code aufgerümt habe, poste ich nochmal.

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 02.02.2011, 23:21

quickmic hat geschrieben:Eins noch... Wenn man einen falschen Port bzw. IP einstellt, schmiert dein Tool ab. Das solltest du besser abfangen.

Besten Dank, werde ich machen.

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 26.02.2011, 18:56

Kurze Frage bevor ich lange suche... Wie kann ich ein Script, dass es schon auf der CCU gibt, per RPC einmalig ausführen?
Ich vermute ich muss Port 2002 nehmen, und dann hab ich nur kurz mit "setvalue" getestet, was aber nicht stimmen wird.
Weiss jemand auf die schnelle wie das XML-Kommandos aussehen muss?

mfg
quickmic

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“