4.7 KiB
Problème : nostrimg.com retourne du HTML au lieu de JSON
Date
2025-01-27
Problème
L'endpoint https://nostrimg.com/api/upload retourne une page HTML au lieu d'une réponse JSON lors des tentatives d'upload.
Symptômes
- Erreur 500 lors des appels à
/api/nip95-upload?endpoint=https://nostrimg.com/api/upload - Message d'erreur :
"Invalid upload response: Unexpected token '<', \"\n<!DOCTYPE \"... is not valid JSON" - Les uploads vers nostrimg.com échouent systématiquement
- La réponse contient du HTML (page d'erreur) au lieu de JSON
Causes possibles identifiées
1. Headers HTTP manquants
Problème : Certains serveurs nécessitent des headers spécifiques pour retourner du JSON au lieu de HTML.
Solution appliquée :
- Ajout du header
Accept: application/jsonpour indiquer au serveur qu'on attend du JSON - Ajout du header
User-Agent: zapwall.fr/1.0car certains serveurs bloquent les requêtes sans User-Agent
2. URL d'endpoint incorrecte
Problème : L'URL https://nostrimg.com/api/upload pourrait ne pas être la bonne.
Vérifications à faire :
- Vérifier la documentation de nostrimg.com
- Tester l'endpoint directement avec curl ou Postman
- Vérifier si l'endpoint nécessite un chemin différent (ex:
/uploadvs/api/upload)
3. Authentification requise
Problème : L'endpoint pourrait nécessiter une authentification (NIP-98 ou autre).
Vérifications à faire :
- Vérifier si nostrimg.com nécessite une authentification
- Tester avec un token d'authentification si disponible
- Vérifier la documentation pour les exigences d'authentification
4. Endpoint non disponible ou modifié
Problème : L'endpoint pourrait ne plus être disponible, avoir changé d'URL, ou être temporairement indisponible.
Vérifications à faire :
- Vérifier le statut du service nostrimg.com
- Tester l'endpoint directement dans un navigateur
- Vérifier les logs serveur pour voir le code de statut exact (404, 403, 500, etc.)
5. Configuration serveur
Problème : Le serveur nostrimg.com pourrait avoir une configuration qui retourne du HTML par défaut pour certaines requêtes.
Vérifications à faire :
- Vérifier le Content-Type de la réponse
- Vérifier si le serveur redirige vers une page d'erreur
- Vérifier les logs pour voir exactement ce qui est retourné
Correctifs appliqués
1. Ajout de headers HTTP
headers['Accept'] = 'application/json'
headers['User-Agent'] = 'zapwall.fr/1.0'
2. Amélioration de la détection des erreurs HTML
- Détection automatique des réponses HTML (commence par
<!DOCTYPE,<html, ou<!) - Classification des erreurs (404, 403, 500)
- Extraction du message d'erreur depuis le HTML (title, h1)
- Messages d'erreur plus clairs avec suggestions
3. Logging amélioré
- Aperçu du corps de la réponse HTML (500 caractères)
- Classification de l'erreur (404, 403, 500)
- Suggestions basées sur le type d'erreur détecté
Diagnostic
Pour diagnostiquer le problème avec nostrimg.com :
-
Vérifier les logs serveur :
- Regarder les logs de l'API pour voir le code de statut exact
- Vérifier le contenu de la réponse HTML retournée
- Identifier le type d'erreur (404, 403, 500, etc.)
-
Tester l'endpoint directement :
curl -X POST https://nostrimg.com/api/upload \ -H "Accept: application/json" \ -H "User-Agent: zapwall.fr/1.0" \ -F "file=@test.jpg" -
Vérifier la documentation :
- Consulter la documentation de nostrimg.com si disponible
- Vérifier les exemples d'utilisation
- Vérifier les exigences d'authentification
-
Vérifier le statut du service :
- Tester si le site nostrimg.com est accessible
- Vérifier si l'endpoint
/api/uploadexiste - Vérifier s'il y a des annonces de maintenance ou de changements
Recommandations
-
Désactiver temporairement nostrimg.com :
- Si le problème persiste, désactiver l'endpoint dans les paramètres
- Utiliser d'autres endpoints fonctionnels (nostrcheck.me avec auth, etc.)
-
Vérifier périodiquement :
- Tester l'endpoint périodiquement pour voir s'il redevient fonctionnel
- Surveiller les mises à jour de nostrimg.com
-
Alternative :
- Utiliser d'autres endpoints NIP-95 qui fonctionnent correctement
- Configurer nostrcheck.me avec authentification NIP-98
Modifications
- Fichier modifié :
pages/api/nip95-upload.ts - Headers ajoutés :
Accept: application/jsonUser-Agent: zapwall.fr/1.0
- Détection HTML améliorée :
- Classification des erreurs (404, 403, 500)
- Messages d'erreur plus clairs
- Logging amélioré avec aperçu du HTML