Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Access Denied bei Azure Cognitive Service (https://www.delphipraxis.net/209461-access-denied-bei-azure-cognitive-service.html)

klaus Meier9 10. Dez 2021 07:26

Access Denied bei Azure Cognitive Service
 
Hallo,
ich verwende Delphi CE 10.4.

Beim Zugriff auf Azure bekomme ich:
Access denied due to invalid subscription key or wrong API endpoint. ...

Ich verwende das Beispiel von Stephen Ball von Github:
https://github.com/DelphiABall/Azure-Cognitive-Services
Stephen schreibt, dass der Code mit 10.4.2 getestet wurde.

Ich habe das Zip heruntergeladen, kompiliert, Region und Key für Speech Service eingetragen, klick auf Test -> Fehler.
Habe auch andere Regionen/Keys ausprobiert - alle erfolglos.

Hat jemand das Beispiel bereits zum Laufen gebracht?
Könnte ja sein, dass das Verhalten bekannt ist und ich den Workaround/Bugfix nur noch nicht gefunden habe.

Im RestDebugger funkioniert es einwandfrei.
In anderen Programmen ebenso.

Vielen Dank für Tipps.

TiGü 10. Dez 2021 08:07

AW: Access Denied bei Azure Cognitive Service
 
Schon mit einen HTTP Debugger wie "Telrik Web Debugger" den Unterschied im HTTP-Request zwischen REST Debugger und den vorliegenden Quelltext gemacht?

https://www.telerik.com/fiddler/fiddler-classic

klaus Meier9 10. Dez 2021 08:18

AW: Access Denied bei Azure Cognitive Service
 
Zitat:

Zitat von TiGü (Beitrag 1498878)
Schon mit einen HTTP Debugger wie "Telrik Web Debugger" den Unterschied im HTTP-Request zwischen REST Debugger und den vorliegenden Quelltext gemacht?

https://www.telerik.com/fiddler/fiddler-classic

Danke TiGü.

Soeben mit Fiddler herausgefunden:
"subscription-key" wird im Body gesendet, er muss aber im Header sein.

Kann mir nicht vorstellen, dass das jemals funktioniert hat.
Deswegen ja der Link zu den Sourcen und die Frage, ob das bereits jemand zum Laufen gebracht hat.
Stephen ist von Embarcadero - ich würde darum mal annehmen, was er veröffentlicht funktioniert - eigentlich.

TiGü 10. Dez 2021 08:33

AW: Access Denied bei Azure Cognitive Service
 
Mail ihn doch einfach mal an?
Vielleicht hat sich auch was an der Azure-API selbst geändert, so dass früher vor vier, fünf Monaten das so eigentlich noch ging.

Uwe Raabe 10. Dez 2021 09:04

AW: Access Denied bei Azure Cognitive Service
 
Zitat:

Zitat von TiGü (Beitrag 1498881)
Vielleicht hat sich auch was an der Azure-API selbst geändert, so dass früher vor vier, fünf Monaten das so eigentlich noch ging.

Sowas passiert leider auch in anderen Fällen viel häufiger als einem lieb ist. Früher haben wir immer einen auf den Deckel bekommen, wenn wir etwas an einem Interface geändert haben, ohne das über eine Versionsnummer abzufangen. Damit lassen sich solche Änderungen relativ schmerzfrei ausrollen. Ist aber wohl nicht mehr Stand der Technik. Wenn solche Änderungen wenigstens halb so intensiv kommuniziert würden wie irgendwelches Marketing-Buzz.

klaus Meier9 11. Dez 2021 10:35

AW: Access Denied bei Azure Cognitive Service
 
Habe das Problem gelöst.
Der Key wird jetzt im Header übertragen.
Hier die Änderungen, falls es mal jemand benötigt:

Unit: Azure.API3.Connection.pas

Alle
subscription-key

ersetzen mit
ocp-apim-subscription-key

In TAzureToken.Create
diese Zeilen hinzufügen:
Code:
RRP.Kind := TRESTRequestParameterKind.pkHTTPHEADER;
RRP.Options := [TRESTRequestParameterOption.poDoNotEncode];
Viele Grüße


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