Gentile Pierandrea,
L'errore 404 Resource not found
suggerisce che l'endpoint a cui stai tentando di fare la richiesta non è corretto. Considerando la tua descrizione e il codice JavaScript fornito, ci sono alcune possibili cause per cui potresti ottenere questo errore.
Ecco alcune verifiche e suggerimenti per correggere il problema:
1. Verifica la URL di Endpoint
Dalla tua descrizione, l'endpoint che stai utilizzando è:
https://visione-artificiale-pier.cognitiveservices.azure.com/imageanalysis:analyze?api-version=2023-04-01-preview
Tuttavia, in Azure Cognitive Services, l'endpoint di solito ha una struttura come:
https://<nome-risorsa>.cognitiveservices.azure.com/vision/v3.2/analyze?visualFeatures=<features>&language=<language>
Per il servizio di "Visione Artificiale" (Computer Vision), assicurati che la tua URL abbia il prefisso giusto /vision/<version>/analyze
.
2. Controlla il Metodo POST e l'Header
Ecco un esempio di come fare una richiesta POST per analizzare un'immagine con l'API di Visione Artificiale di Azure utilizzando JavaScript:
const url = "https://visione-artificiale-pier.cognitiveservices.azure.com/vision/v3.2/analyze?visualFeatures=Description&api-version=2023-04-01-preview";
const apiKey = "myApiKey";
async function analyzeImage(imageData) {
const response = await fetch(url, {
method: "POST",
headers: {
"Ocp-Apim-Subscription-Key": apiKey,
"Content-Type": "application/octet-stream"
},
body: imageData
});
if (!response.ok) {
throw new Error(`Errore nella richiesta: ${response.status} ${response.statusText}`);
}
const data = await response.json();
console.log(data);
}
// Per esempio, prendi un file immagine dal form HTML
document.getElementById("uploadImage").addEventListener("change", async (event) => {
const file = event.target.files[0];
if (!file) return;
const imageData = await file.arrayBuffer(); // Converti il file immagine in un ArrayBuffer
try {
await analyzeImage(imageData);
} catch (error) {
console.error("Errore durante l'analisi dell'immagine:", error);
}
});
3. Impostazioni del Formato dell'Immagine
Assicurati che il formato del corpo della richiesta (body
) sia corretto. Per immagini, il tipo di contenuto (Content-Type
) dovrebbe essere "application/octet-stream"
quando invii i dati binari dell'immagine.
4. Verifica l'Endpoint della Risorsa di Azure
Assicurati che la risorsa creata in Azure sia effettivamente del tipo "Computer Vision" e che l'endpoint sia corretto per quel servizio. Vai al portale di Azure, seleziona la tua risorsa di "Computer Vision" e copia l'endpoint e la chiave API.
5. Correzione del Codice HTML/JS
Ecco un esempio di HTML per caricare un'immagine e attivare la funzione di analisi:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Analisi dell'Immagine</title>
</head>
<body>
<input type="file" id="uploadImage" accept="image/*">
<script src="analyze.js"></script> <!-- Assumendo che il codice JS sia in analyze.js -->
</body>
</html>
Riassunto
- Verifica l'endpoint: Assicurati che sia formattato correttamente.
- Controlla il metodo HTTP e gli header: Usa
POST
con i giusti header e payload. - Aggiorna il JavaScript e HTML: Assicurati che il codice JavaScript e l'HTML siano corretti e funzionanti.
Fammi sapere se questo risolve il problema o se hai bisogno di ulteriori dettagli!