Я пытаюсь использовать Azure API Cognitive Services с Powershell для «чтения» содержимого .jpg в хранилище больших двоичных объектов. Все, что я пытаюсь сделать, отлично работает с демонстрационной / тестовой страницей Azure API, поэтому я почти уверен, что это в какой-то мере доказывает, что некоторые элементы, которые я использую в своем коде, действительны. Ну, по крайней мере, они есть при использовании инструмента тестирования API.
Вот мой Powershell:
Clear-Host
$myUri = "<ENDPOINT value from "keys and endpoint blade">/vision/v3.0/read/analyze?language=en"
$imagePath = "<path to image in blob. accessible online and anonymously>"
$subKey = "<KEY #1 from "keys and endpoint" blade>"
$headersHash = @{}
$headersHash.Add( "Host", "westeurope.api.cognitive.microsoft.com" )
$headersHash.Add( "Ocp-Apim-Subscription-Key", $subKey )
$headersHash.Add( "Content-Type","application/json" )
$bodyHash = @{ "url" = $imagePath }
out-host -InputObject "Sending request:"
$response = Invoke-WebRequest -uri $myUri `
-Method Post `
-Headers $headersHash `
-Body $bodyHash `
-verbose
"Response: $response"
Когда я его отправляю, все, что я когда-либо получаю, это:
Invoke-WebRequest : The remote server returned an error: (400) Bad Request.
At C:\scratch\testy.ps1:15 char:13
+ $response = Invoke-WebRequest -uri $myUri `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-W
ebRequest], WebException
+ FullyQualifiedErrorId :
WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Мне, должно быть, не хватает чего-то basi c, но я не вижу что. Нет опубликованных примеров использования Powershell для доступа к API CS, которые я могу найти, но есть пример с Python (запросы), и я почти уверен, что эмулирую и правильно представляю то, что входит в пример Python. . Но опять же, он не работает, поэтому что-то не так.
Как ни странно, когда я пытаюсь воссоздать это в Postman, я получаю 202, но не тело ответа, поэтому я не могу его просмотреть или извлечь apim-request-id, чтобы произвести следующий запрос для получения результатов.