AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Problem mit HTTP-Server und XML-Parsing
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit HTTP-Server und XML-Parsing

Ein Thema von meisteralex · begonnen am 13. Okt 2007 · letzter Beitrag vom 13. Okt 2007
Antwort Antwort
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#1

Problem mit HTTP-Server und XML-Parsing

  Alt 13. Okt 2007, 16:45
Hi Leute, ich möchte per HTTP-Post-Request Daten an einen Server schicken , welcher diese dann interpretiert. Die Daten werden im XML-Format übertragen.

Hierzu habe ich die INDY-HTTP-Server - Komponente auf meinem Formular plaziert.

Ankommende daten werden wie folgt verarbeitet bei der HTTP-Server -Komponente:

Delphi-Quellcode:
procedure Tfrm_main.http_serverCommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
str_datastring:string;
begin

  //Das XML - Glied herausfinden
  str_datastring := streamtostring(arequestinfo.PostStream);
  str_datastring := copy(str_datastring,pos('<xml',str_datastring),pos('</xml>',str_datastring)+length('</xml>')-pos('<xml',str_datastring));
  //Logging
  log('Receiving data from ' + ARequestInfo.Host + ': ' + str_datastring);


  AResponseInfo.ContentText := parse_xml(str_datastring);
  AResponseInfo.WriteContent;


  log('ende');

end;
Mit der Funktion Log schreibe ich in ein Memofeld und sehe, dass in str_datastring mein XML-String einwandfrei ankommt.
Lasse ich genau diesen XML-String manuell durch parse_xml() interpretieren läuft das ganze auch einwandfrei.
Wenn ich jedoch direkt in der Prozedur parse_xml() mit dem sonst einwandfrei interpretierten XML-String aufrufe entsteht ein Fehler bzw. das Programm stockt.
Der Fehler tritt auch auf, wenn ich z.B. nicht prase_xml(str_datastring) verwende, sondern ein ganz simples parse_xml('<xml><test>ladsfl</test></xml>'), welches ja bei der interpretierung keinerlei Zicken machen dürfte, bzw. bei der manuellen interpretation auch einwandfrei durchläuft.

Zunächst einmal meine Funktion parse_xml():

Delphi-Quellcode:
function parse_xml(xmlstring_f:string):string;
var
xml:IXMLDocument;
node: IXMLNode;
begin

  xml := TXMLDocument.Create(nil);

  log('Parsing:Starting');

  xml.XML.Text := xmlstring_f;
  //bis hier läuft die Funktion
  xml.Active := True;
  //Alles zwischen <xml und </xml> zuweisen
  node := xml.DocumentElement;

  log('Parsing:Finished');
end;
Wie man sieht is die Funktion noch recht simpel, es tritt hier jedoch bereits bei xml.Active := true ein fehler auf, jecoch nur(!!!) wenn die Funktion parse_xml() in der oben geposteten Methode aufgerufen wird, sonst läuft sie Einwandfrei durch (bei genau gleichem xml-code)

Leute ich weiß einfach nicht mehr weiter, helft mir bitte!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Problem mit HTTP-Server und XML-Parsing

  Alt 13. Okt 2007, 16:52
Wie so oft: Welche Fehlermeldung kommt? Du weist schon: Glaskugel defekt und so. Ich tipp trotzdem mal: "CoInitialize nicht aufgerufen"
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#3

Re: Problem mit HTTP-Server und XML-Parsing

  Alt 13. Okt 2007, 17:00
Jetzt wo ich die Exceptions ausgebel lasse kommt genau diese Fehlermeldung .

und nu ?
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Problem mit HTTP-Server und XML-Parsing

  Alt 13. Okt 2007, 17:05
"CoInitialize" aufrufen?
Christian
  Mit Zitat antworten Zitat
meisteralex

Registriert seit: 22. Nov 2005
173 Beiträge
 
#5

Re: Problem mit HTTP-Server und XML-Parsing

  Alt 13. Okt 2007, 17:08
und was ist das denn und wo sollte ich es am besten aufrufen ?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Problem mit HTTP-Server und XML-Parsing

  Alt 13. Okt 2007, 17:18
Zitat von meisteralex:
Jetzt wo ich die Exceptions ausgebel lasse kommt genau diese Fehlermeldung.
Jeah, ich bin gut. Nenn mich Meister

Zitat von meisteralex:
und was ist das denn und wo sollte ich es am besten aufrufen ?
Am besten suchst du im Forum mal nach Hier im Forum suchenCoInitialize. Ich glaube es gibt genügend entsprechend Thread so das dir klar wird wann du es aufrufen mußt und wann du auch das Gegenstück CoUninitialize aufrufen solltest.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz