So hab jetzt doch noch mal versucht was Vernünftiges zu Stande zu bringen,
bin aber nach erfolgreichem Kompilieren wieder an der Ausführung gescheitert:
EIdHttpProtocolException HTTP/1.0 500 Internal Error
The server encountered an unexpected condition which prevented it from fulfilling the request.
Unter Delphi 7 mit
XML-RPC-2.0.0 funktioniert das ganze mit dem selben Aufruf ohne Probleme.
In LibXmlParser.pas hab ich folgende Änderungen vorgenommen
(Alle Änderungen im Code durch Note (SeHa-2009-04-23) gekennzeichnet)
- Die AnsiToUtf8 und Utf8ToAnsi Funktionen auskommentiert
- Special Helper Functions rausgenommen, da die zu Fehlern geführt haben.
- TranslateEncoding schleift nur noch durch:
Delphi-Quellcode:
FUNCTION TXmlParser.TranslateEncoding (CONST Source : STRING) : STRING;
BEGIN
Result := Source;
END;
In XmlRpcCommon.pas:
- IdHashMessageDigest eingebunden
- Funktion eingefügt: function HashStringMD5AsHex(const AStr: WideString): string; welche der Funktion von mjustin entspricht
In XmlRpcClient.pas:
- Bekannte benötigte Änderungen für Indy10 eingesetzt
- In TRpcCaller.Execute HashStringMD5AsHex Funktion eingesetzt
Delphi-Quellcode:
{ determine the md5 digest hash of the request }
// Hash := Hash128AsHex(HashMessageDigest.HashValue(XmlRequest));
Hash := HashStringMD5AsHex(XmlRequest);
In XmlRpcServer.pas:
- IdContext eingebunden
- Bekannte benötigte Änderungen für Indy10 eingesetzt
DiMime.pas: durch aktuellere Version ersetzt
Wie gesagt, hat es nach den Änderungen kompiliert (Auch ohne dass
Ansi-Strings und -Chars ersetzt wurden)
Aber bei der Ausführung kommt besagter Fehler.
Hab das ganze Gedönz mal angehängt.
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay