Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Exception bei HTTP GET über MSXML2_TLB.pas (https://www.delphipraxis.net/156060-exception-bei-http-get-ueber-msxml2_tlb-pas.html)

Crazy Ivan 18. Nov 2010 11:52


Exception bei HTTP GET über MSXML2_TLB.pas
 
Hallo da draußen.

Ich habe die in diesem Beitrag beschriebene Methode unter TurboDelphi2006 nachgebaut, um die OpenWeather-Schnittstelle von Wetter.com für eine Art Schulprojekt zu nutzen. Es gibt allerdings eine Exception in folgendem Code:

Delphi-Quellcode:
function TFWeather.GetCityCode: String;
var
  Req: IXMLHTTPRequest;
begin
  Req := ComsXMLHTTP.Create; // an dieser Stelle die Exception
  with Req do
  begin
    Open('GET', GetSearchURL, False, {Username} EmptyParam, {Passwort} EmptyParam);
    SetRequestHeader('aiFrogOpenWeatherGadget', 'CityCodeRequest');
    Send(EmptyParam);
    Result := ...
  end;
end;
Dabei wird dann eine Zeile in der MSXML2_TLB.pas angezeigt, die Delphi für MSXMLv4 generiert hat. Die entsprechende Stelle ist:

Delphi-Quellcode:
class function ComsXMLHTTP.Create: IXMLHTTPRequest;
begin
  Result := CreateComObject(CLASS_msXMLHTTP) as IXMLHTTPRequest;
end;
Die Exception: Im Projekt ist eine Exception der Klasse EOleSysError mit der Meldung 'CoInitialize wurde nicht aufgerufen, Class-ID: {.........}' aufgetreten.

Was mache ich (und oder Delphi) falsch?

sirius 18. Nov 2010 12:25

AW: Exception bei HTTP GET über MSXML2_TLB.pas
 
Dann rufe einfach am Anfang des Projektes (bzw. jedes Threads) CoInitialize(nil) (IMHO unit ActiveX oder comobjs) auf.
Bei einem VCL-Projekt wird das normalerweise automatisch gemacht.

Crazy Ivan 18. Nov 2010 16:54

AW: Exception bei HTTP GET über MSXML2_TLB.pas
 
Vielen Dank, das funktioniert. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 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