![]() |
Problem mit MSXML Httprequest.send
Das ist eine Legacy-Anwendung mit Delphi 2006. Sie greift auf die MS Azure Translator API zu. Das hat seit gut 1 Jahr problemlos funktioniert + jetzt nicht mehr.
Es geht um diesen Code:
Code:
Open wird ein Token angefordert, der ist immer 10 Minuten gültig. Das funktioniert. Unten wird mit dem Token eine Abfrage-URL erzeugt. Das OPEN funktioniert. Beim SEND wird eine Exception geworfen mit "'Systemfehler: -2146697208'". Das SEND ist eine Methode aus der MSXML.
var
XMLHTTPRequest: IXMLHTTPRequest; XMLDOMDocument: IXMLDOMDocument; begin try XMLHTTPRequest := CreateOleObject('MSXML2.XMLHTTP') as IXMLHTTPRequest; if (sActiveToken = '') or (Now - dtTokenDate >= n10min) then begin dtTokenDate := Now; XMLHTTPRequest.Open('POST', URIToken, False, '', ''); XMLHTTPRequest.setRequestHeader('Ocp-Apim-Subscription-Key', SubscriptionKey); XMLHTTPRequest.send(''); if (XMLHTTPRequest.readyState = COMPLETED) and (XMLHTTPRequest.status = OK) then begin sActiveToken := XMLHTTPRequest.responseText; end else begin sActiveToken := ''; end; end; Uri := UriTranslate + '?appid=Bearer%20' + sActiveToken + '&text=' + sText + '&from=' + sFrom + '&to=' + sTo; XMLHTTPRequest.Open('GET', URI, False, '', ''); XMLHTTPRequest.send(''); Hat jemand eine Ahnung, was da schief gehen könnte? Danke für Eure Tipps! |
AW: Problem mit MSXML Httprequest.send
Ergänzung: Das ist sowohl auf meiner Entwicklungsmaschine so (XP) , als auch beim Kunden (Win 10).
Und eben auf einem Win 8 Rechner getestet, da funktioniert das. Muss wohl was mit der MSXML.DLL zu tun haben. |
AW: Problem mit MSXML Httprequest.send
Code:
Die Registry sagt dazu: msxml3.dll. Auf dem Entwicklungsrechner v3 SP10 (da geht es nicht).
CLASS_XMLHTTPRequest: TGUID = '{ED8C108E-4349-11D2-91A4-00C04F7969E8}';
... class function CoXMLHTTPRequest.Create: IXMLHttpRequest; begin Result := CreateComObject(CLASS_XMLHTTPRequest) as IXMLHttpRequest; end; Auf dem Testrechner v3 SP11 (da geht es). Mal sehen, ob es für die v3 ein SP 11 zum downloaden gibt. Aber die Frage ist: Warum funktioniert das auf meinem Entwicklungsrechner nicht mehr? |
AW: Problem mit MSXML Httprequest.send
Das liegt wohl wirklich an der Version. Hmm - weiß jemand, wie man die MSXML3.dll updaten kann?
|
AW: Problem mit MSXML Httprequest.send
Nur ein Versuch:
XMLHTTPRequest.send(''); mit XMLHTTPRequest.send(); ersetzen. Was passiert? |
AW: Problem mit MSXML Httprequest.send
Zitat:
![]() |
AW: Problem mit MSXML Httprequest.send
@KodeZwerg:
Das geht so nicht, weil: procedure send(varBody: OleVariant); safecall; Aber auch der Aufruf mit NULL als Parameter statt '' ändert nichts. Trotzdem danke. @mkinzler: Danke für den Link. MSXML3.DLL SP11 kommt da leider gar nicht vor + die weiterführenden Links landen im Nirwana. Leider ist die Fehlermeldung 'Systemfehler: -2146697208' auch nicht recht hilfreich. |
AW: Problem mit MSXML Httprequest.send
Besagte MSXML3.DLL, gleicher Sytemfehler, aber vollkommen andere Ursache:
![]() ![]() ![]() Grobes Fazit: Der Server ist nicht erreichbar. |
AW: Problem mit MSXML Httprequest.send
Gerade wegen dieser Zahl vermute ich dass das
Delphi-Quellcode:
der Fehler ist, eventuel liegts ja auch an der Unit wo das "varBody: OleVariant" vorkommt (das die jetzige dll den typ nicht versteht)
''
Schau Dir mal den Export der DLL, da müsstest du den korrekten Aufruf entdecken können. |
AW: Problem mit MSXML Httprequest.send
Wenn das '' der Fehler ist, müsste es aber überall so sein und nicht nur bei einigen Rechnern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz