Projet

Général

Profil

Development #47452

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Ajouté par Sentry Io il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
08 octobre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/5617/

JSONDecodeError: Expecting value: line 1 column 1 (char 0)
(6 additional frame(s) were not displayed)
...
  File "django/views/generic/base.py", line 88, in dispatch
    return handler(request, *args, **kwargs)
  File "combo/apps/lingo/views.py", line 138, in post
    request_body = json.loads(force_text(self.request.body))
  File "__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None

Fichiers

Révisions associées

Révision 736055ca (diff)
Ajouté par Valentin Deniaud il y a plus de 3 ans

apps: do not crash when request body is not json (#47452)

Historique

#1

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Projet changé de Suivi des traces à Lingo
#2

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Assigné à mis à Valentin Deniaud
#3

Mis à jour par Valentin Deniaud il y a plus de 3 ans

Ça arrive quand on ne renseigne rien dans les données à envoyer.

Mais est-ce que le bon fix ça serait pas plutôt que wcs envoie du JSON valide dans ce cas, {}, plutôt que rien du tout ? Après tout c'est marqué POST (JSON)...

#4

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Si tu veux tous les faire d'un coup :

combo/apps/dashboard/views.py:    request_body = json.loads(force_text(request.body))
combo/apps/lingo/views.py:        request_body = json.loads(force_text(self.request.body))
combo/apps/lingo/views.py:        request_body = json.loads(force_text(self.request.body))
combo/apps/pwa/views.py:    subscription_data = json.loads(force_text(request.body))

À mon avis il faut tout gérer :

    if not request.body:
        return HttpResponseBadRequest()
    try:
       ..........
    except JSONDecodeError:
        return HTTPResponseBadRequest()
#5

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution proposée à En cours
#7

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

Ça manque de test.

#8

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7c4856ea2569feb0bbb2b90e040ee77b82f957ec
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Thu Oct 8 12:18:29 2020 +0200

    apps: do not crash when request body is not json (#47452)
#9

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF