AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Access Denied bei Azure Cognitive Service
Thema durchsuchen
Ansicht
Themen-Optionen

Access Denied bei Azure Cognitive Service

Ein Thema von klaus Meier9 · begonnen am 10. Dez 2021 · letzter Beitrag vom 11. Dez 2021
Antwort Antwort
klaus Meier9

Registriert seit: 18. Dez 2014
23 Beiträge
 
#1

Access Denied bei Azure Cognitive Service

  Alt 10. Dez 2021, 08:26
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.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Access Denied bei Azure Cognitive Service

  Alt 10. Dez 2021, 09:07
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
  Mit Zitat antworten Zitat
klaus Meier9

Registriert seit: 18. Dez 2014
23 Beiträge
 
#3

AW: Access Denied bei Azure Cognitive Service

  Alt 10. Dez 2021, 09:18
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.

Geändert von klaus Meier9 (10. Dez 2021 um 11:15 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Access Denied bei Azure Cognitive Service

  Alt 10. Dez 2021, 09:33
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

AW: Access Denied bei Azure Cognitive Service

  Alt 10. Dez 2021, 10:04
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
klaus Meier9

Registriert seit: 18. Dez 2014
23 Beiträge
 
#6

AW: Access Denied bei Azure Cognitive Service

  Alt 11. Dez 2021, 11:35
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

Geändert von klaus Meier9 (11. Dez 2021 um 11:44 Uhr)
  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 17:45 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